[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/7] block/gluster: Use g_autofree for string in qemu_gluster
From: |
Kevin Wolf |
Subject: |
Re: [PATCH 2/7] block/gluster: Use g_autofree for string in qemu_gluster_parse_json() |
Date: |
Wed, 31 Jul 2024 17:04:00 +0200 |
Am 31.07.2024 um 16:36 hat Peter Maydell geschrieben:
> In the loop in qemu_gluster_parse_json() we do:
>
> char *str = NULL;
> for(...) {
> str = g_strdup_printf(...);
> ...
> if (various errors) {
> goto out;
> }
> ...
> g_free(str);
> str = NULL;
> }
> return 0;
> out:
> various cleanups;
> g_free(str);
> ...
> return -errno;
>
> Coverity correctly complains that the assignment "str = NULL" at the
> end of the loop is unnecessary, because we will either go back to the
> top of the loop and overwrite it, or else we will exit the loop and
> then exit the function without ever reading str again. The assignment
> is there as defensive coding to ensure that str is only non-NULL if
> it's a live allocation, so this is intentional.
>
> We can make Coverity happier and simplify the code here by using
> g_autofree, since we never need 'str' outside the loop.
>
> Resolves: Coverity CID 1527385
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> block/gluster.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/block/gluster.c b/block/gluster.c
> index f8b415f3812..61ded95e660 100644
> --- a/block/gluster.c
> +++ b/block/gluster.c
> @@ -514,7 +514,6 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster
> *gconf,
> SocketAddressList **tail;
> QDict *backing_options = NULL;
> Error *local_err = NULL;
> - char *str = NULL;
> const char *ptr;
> int i, type, num_servers;
>
> @@ -547,7 +546,7 @@ static int qemu_gluster_parse_json(BlockdevOptionsGluster
> *gconf,
> tail = &gconf->server;
>
> for (i = 0; i < num_servers; i++) {
> - str = g_strdup_printf(GLUSTER_OPT_SERVER_PATTERN"%d.", i);
> + g_autofree char *str =
> g_strdup_printf(GLUSTER_OPT_SERVER_PATTERN"%d.", i);
This line is too long now.
With this fixed:
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
- [PATCH 3/7] hw/block/pflash_cfi01: Don't decrement pfl->counter below 0, (continued)
- [PATCH 3/7] hw/block/pflash_cfi01: Don't decrement pfl->counter below 0, Peter Maydell, 2024/07/31
- [PATCH 4/7] hw/ide/atapi: Be explicit that assigning to s->lcyl truncates, Peter Maydell, 2024/07/31
- [PATCH 7/7] block/ssh.c: Don't double-check that characters are hex digits, Peter Maydell, 2024/07/31
- [PATCH 2/7] block/gluster: Use g_autofree for string in qemu_gluster_parse_json(), Peter Maydell, 2024/07/31
- [PATCH 6/7] hw/ide/pci.c: Remove dead code from bmdma_prepare_buf(), Peter Maydell, 2024/07/31