• A
    network: Avoid memory leaks on networkBuildDnsmasqArgv · be9fb5af
    Alex Jia 提交于
    Detected by valgrind. Leaks introduced in commit 973af236.
    
    * src/network/bridge_driver.c: fix memory leaks on failure and successful path.
    
    * How to reproduce?
    % make -C tests check TESTS=networkxml2argvtest
    % cd tests && valgrind -v --leak-check=full ./networkxml2argvtest
    
    * Actual result:
    
    ==2226== 3 bytes in 1 blocks are definitely lost in loss record 1 of 24
    ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
    ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
    ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
    ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
    ==2226==    by 0x41A2D9: networkBuildDhcpDaemonCommandLine (bridge_driver.c:545)
    ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
    ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
    ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
    ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
    ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
    ==2226==
    ==2226== 3 bytes in 1 blocks are definitely lost in loss record 2 of 24
    ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
    ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
    ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
    ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
    ==2226==    by 0x41A307: networkBuildDhcpDaemonCommandLine (bridge_driver.c:551)
    ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
    ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
    ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
    ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
    ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
    ==2226==
    ==2226== 5 bytes in 1 blocks are definitely lost in loss record 4 of 24
    ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
    ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
    ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
    ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
    ==2226==    by 0x41A2AB: networkBuildDhcpDaemonCommandLine (bridge_driver.c:539)
    ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
    ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
    ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
    ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
    ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
    ==2226==
    ==2226== LEAK SUMMARY:
    ==2226==    definitely lost: 11 bytes in 3 blocks
    Signed-off-by: NAlex Jia <ajia@redhat.com>
    Signed-off-by: NEric Blake <eblake@redhat.com>
    be9fb5af
bridge_driver.c 105.0 KB