On Mon, Jul 05, 2021 at 05:36:42PM +0200, Tim Wiederhake wrote: > `virHashNew` cannot return NULL, the check is not needed. > > Signed-off-by: Tim Wiederhake <twied...@redhat.com> > --- > src/qemu/qemu_monitor.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c > index 19fcc5658b..86aabc98c3 100644 > --- a/src/qemu/qemu_monitor.c > +++ b/src/qemu/qemu_monitor.c > @@ -2155,23 +2155,23 @@ qemuMonitorGetAllBlockStatsInfo(qemuMonitor *mon, > bool backingChain) > { > int ret; > + GHashTable *stats = virHashNew(g_free); > + > VIR_DEBUG("ret_stats=%p, backing=%d", ret_stats, backingChain); > > QEMU_CHECK_MONITOR(mon);
This macro expands with 'return -1', so this change causes a memory leak of 'stats'. This obscurity is why i don't like macros containing hidden control flow. > > - if (!(*ret_stats = virHashNew(g_free))) > - goto error; > - > - ret = qemuMonitorJSONGetAllBlockStatsInfo(mon, *ret_stats, backingChain); > + *ret_stats = NULL; > + ret = qemuMonitorJSONGetAllBlockStatsInfo(mon, stats, backingChain); > > if (ret < 0) > goto error; > > + *ret_stats = stats; > return ret; > > error: > - virHashFree(*ret_stats); > - *ret_stats = NULL; > + virHashFree(stats); > return -1; > } > > -- > 2.31.1 > Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|