All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Cc: Richard Henderson <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org, qemu-block@nongnu.org
Subject: Re: [PATCH 01/11] nbd/server: Remove unused variable
Date: Tue, 13 Jul 2021 08:01:34 -0500	[thread overview]
Message-ID: <20210713130134.zfti7sgxcw4i3dbd@redhat.com> (raw)
In-Reply-To: <bdb476db-6e95-b90e-f218-85612009a7aa@virtuozzo.com>

On Tue, Jul 13, 2021 at 12:27:48PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> 13.07.2021 00:55, Richard Henderson wrote:
> >  From clang-13:
> > nbd/server.c:976:22: error: variable 'bitmaps' set but not used \
> >      [-Werror,-Wunused-but-set-variable]
> > 

> > +++ b/nbd/server.c
> > @@ -973,7 +973,6 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
> >   {
> >       int ret;
> >       g_autofree char *export_name = NULL;
> > -    g_autofree bool *bitmaps = NULL;
> >       NBDExportMetaContexts local_meta = {0};
> >       uint32_t nb_queries;
> >       size_t i;
> > @@ -1007,9 +1006,6 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
> >                               "export '%s' not present", sane_name);
> >       }
> >       meta->bitmaps = g_new0(bool, meta->exp->nr_export_bitmaps);
> > -    if (client->opt == NBD_OPT_LIST_META_CONTEXT) {
> > -        bitmaps = meta->bitmaps;
> > -    }
> >       ret = nbd_opt_read(client, &nb_queries, sizeof(nb_queries), false, errp);
> >       if (ret <= 0) {
> > 
> 
> 
> Hm. I'm afraid, this way meta->bitmaps will be leaked in NBD_OPT_LIST_META_CONTEXT case.
> 
> Actually, "bitmaps" _is_ used, in cleanup handler, setup by g_autofree. So it's a false positive.
>

Correct; this patch is wrong, and would cause a memory leak. This is a
false positive in clang, and a known issue that clang is in general
unable to see that g_autofree variables are used, sometimes for their
intentional side effects such as easier memory cleanup as done here.

I suspect that the definition of g_autofree already uses
__attribute__((unused)) to work around clang's oddities, which means
I'm not sure how to silence clang on this one.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



  reply	other threads:[~2021-07-13 13:03 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-12 21:55 [PATCH 00/11] Fixes for clang-13 plus tcg/ppc Richard Henderson
2021-07-12 21:55 ` [PATCH 01/11] nbd/server: Remove unused variable Richard Henderson
2021-07-13  9:27   ` Vladimir Sementsov-Ogievskiy
2021-07-13 13:01     ` Eric Blake [this message]
2021-07-13 13:14       ` Eric Blake
2021-07-13 13:54         ` Richard Henderson
2021-07-12 21:55 ` [PATCH 02/11] accel/tcg: Remove unused variable in cpu_exec Richard Henderson
2021-07-13 16:27   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 03/11] util/selfmap: Discard mapping on error Richard Henderson
2021-07-13 16:06   ` Eric Blake
2021-07-13 17:10     ` Richard Henderson
2021-07-12 21:55 ` [PATCH 04/11] net/checksum: Remove unused variable in net_checksum_add_iov Richard Henderson
2021-07-12 21:55 ` [PATCH 05/11] hw/audio/adlib: Remove unused variable in adlib_callback Richard Henderson
2021-07-13 16:31   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 06/11] hw/ppc/spapr_events: Remove unused variable from check_exception Richard Henderson
2021-07-13  0:05   ` David Gibson
2021-07-12 21:55 ` [PATCH 07/11] hw/pci-hist/pnv_phb4: Fix typo in pnv_phb4_ioda_write Richard Henderson
2021-07-13  0:06   ` David Gibson
2021-07-12 21:55 ` [PATCH 08/11] linux-user/syscall: Remove unused variable from execve Richard Henderson
2021-07-13 13:57   ` Laurent Vivier
2021-07-12 21:55 ` [PATCH 09/11] tests/unit: Remove unused variable from test_io Richard Henderson
2021-07-13 16:30   ` Philippe Mathieu-Daudé
2021-07-12 21:55 ` [PATCH 10/11] tcg/ppc: Replace TCG_TARGET_CALL_DARWIN with _CALL_DARWIN Richard Henderson
2021-07-12 21:55 ` [PATCH 11/11] tcg/ppc: Ensure _CALL_SYSV is set for 32-bit ELF Richard Henderson
2021-08-14  5:27 ` [PATCH 00/11] Fixes for clang-13 plus tcg/ppc Brad Smith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210713130134.zfti7sgxcw4i3dbd@redhat.com \
    --to=eblake@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.