On Wed, Jun 03, 2020 at 06:42:10 -0400, John Ferlan wrote: > First time in a while - Coverity complained this morning > > [...] > > > diff --git a/src/lxc/lxc_fuse.c b/src/lxc/lxc_fuse.c > > index e73b4d0690..c4223f4e06 100644 > > --- a/src/lxc/lxc_fuse.c > > +++ b/src/lxc/lxc_fuse.c > > @@ -326,10 +326,10 @@ int lxcSetupFuse(virLXCFusePtr *f, virDomainDefPtr def) > > *f = fuse; > > ^^ > Event use_after_free: Using freed pointer "fuse". > Also see events: [alias][freed_arg] > > > return ret; > > cleanup1: > > - VIR_FREE(fuse->mountpoint); > > + g_free(fuse->mountpoint); > > virMutexDestroy(&fuse->lock); > > cleanup2: > > - VIR_FREE(fuse); > > + g_free(fuse); > > ^^ > Event freed_arg: "g_free" frees "fuse". > > A fuse = NULL; here will make coverity happy, but not sure if that's > standard any more... The VIR_FREE would have done thta for us IIRC. The equivalent replacement for 'VIR_FREE' is 'g_clear_pointer(&ptr, g_free)' as actually done by VIR_FREE nowadays and not just g_free. The side effect of VIR_FREE, non-equivalence to g_free combined with the fact that g_clear_pointer is longer makes this a source of possible nasty bugs.