
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 <twiederh@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 :|