]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
network: Free inhibitor in networkStateCleanup()
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 13 Mar 2025 12:01:19 +0000 (13:01 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 13 Mar 2025 14:51:15 +0000 (15:51 +0100)
The shutdown inhibitor is created in networkStateInitialize() but
corresponding call to virInhibitorFree() is missing in
networkStateCleanup() leading to a memleak:

116 (72 direct, 44 indirect) bytes in 1 blocks are definitely lost in loss record 1,769 of 1,998
   at 0x484CEF3: calloc (vg_replace_malloc.c:1675)
   by 0x4F0E7A9: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.8000.5)
   by 0x4993B9B: virInhibitorNew (virinhibitor.c:152)
   by 0x5279394: networkStateInitialize (bridge_driver.c:654)
   by 0x4CC74DC: virStateInitialize (libvirt.c:665)
   by 0x15B719: daemonRunStateInit (remote_daemon.c:613)
   by 0x49F2B44: virThreadHelper (virthread.c:256)
   by 0x5356662: start_thread (in /usr/lib64/libc.so.6)
   by 0x53D7DA3: clone (in /usr/lib64/libc.so.6)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/network/bridge_driver.c

index 80d2c3a1d51b81e33cacbda67126ef0f1d58e2ac..2cad1c8cbebd7003cfa2710301a1c60bf7735001 100644 (file)
@@ -802,6 +802,8 @@ networkStateCleanup(void)
                           network_driver->lockFD);
     }
 
+    virInhibitorFree(network_driver->inhibitor);
+
     virObjectUnref(network_driver->config);
     virObjectUnref(network_driver->dnsmasqCaps);