From 29d6bb7045b22af61c4853c439b2c0a7f75d1a0b Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 19 Mar 2018 07:39:08 +0100 Subject: [PATCH] virNetlinkDumpCommand: Don't leak response buffer ==16451== 32,768 bytes in 2 blocks are definitely lost in loss record 1,007 of 1,013 ==16451== at 0x4C2AF0F: malloc (vg_replace_malloc.c:299) ==16451== by 0x7CADB40: nl_recv (in /usr/lib64/libnl-3.so.200.23.0) ==16451== by 0x532DFAC: virNetlinkDumpCommand (virnetlink.c:363) ==16451== by 0x53236AE: virNetDevIPCheckIPv6Forwarding (virnetdevip.c:641) ==16451== by 0xE3E4A1A: networkStartNetworkVirtual (bridge_driver.c:2490) ==16451== by 0xE3E55F5: networkStartNetwork (bridge_driver.c:2832) ==16451== by 0xE3DFFE5: networkAutostartConfig (bridge_driver.c:531) ==16451== by 0x53F47E0: virNetworkObjListForEachHelper (virnetworkobj.c:1412) ==16451== by 0x52FE69F: virHashForEach (virhash.c:606) ==16451== by 0x53F4857: virNetworkObjListForEach (virnetworkobj.c:1439) ==16451== by 0xE3E0BF4: networkStateAutoStart (bridge_driver.c:808) ==16451== by 0x55689CE: virStateInitialize (libvirt.c:758) Signed-off-by: Michal Privoznik Reviewed-by: Erik Skultety --- src/util/virnetlink.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c index 0e281b06b8..fa1ba3e2a1 100644 --- a/src/util/virnetlink.c +++ b/src/util/virnetlink.c @@ -373,11 +373,13 @@ virNetlinkDumpCommand(struct nl_msg *nl_msg, if (callback(msg, opaque) < 0) goto cleanup; } + VIR_FREE(resp); } ret = 0; cleanup: + VIR_FREE(resp); virNetlinkFree(nlhandle); return ret; } -- 2.39.5