From: Michal Privoznik <[email protected]> The nwfilterStateCleanupLocked() is responsible for freeing nwfilter driver struct members. But it never decrements the driver's config object leading to a memory leak.
==272308== 154 (64 direct, 90 indirect) bytes in 1 blocks are definitely lost in loss record 3,136 of 3,320 ==272308== at 0x515C3C8: g_type_create_instance (gtype.c:1877) ==272308== by 0x51411E3: g_object_new_internal.part.0 (gobject.c:2671) ==272308== by 0x5142956: g_object_new_internal (gobject.c:2671) ==272308== by 0x5142956: g_object_new_with_properties (gobject.c:2833) ==272308== by 0x5143930: g_object_new (gobject.c:2481) ==272308== by 0x49BCDB8: virObjectNew (virobject.c:257) ==272308== by 0x1968C484: virNWFilterDriverConfigNew (nwfilter_driver_conf.c:163) ==272308== by 0x196899AB: nwfilterStateInitialize (nwfilter_driver.c:237) ==272308== by 0x4CE2BE3: virStateInitialize (libvirt.c:667) ==272308== by 0x401C171: daemonRunStateInit (remote_daemon.c:583) Signed-off-by: Michal Privoznik <[email protected]> --- src/nwfilter/nwfilter_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 9b981ddcbf..2ea55d1788 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -176,6 +176,7 @@ nwfilterStateCleanupLocked(void) } virObjectUnref(driver->bindings); + virObjectUnref(driver->config); /* free inactive nwfilters */ virNWFilterObjListFree(driver->nwfilters); -- 2.56.0
