From: Stefan Berger Date: Thu, 12 Aug 2010 20:30:11 +0000 (-0400) Subject: Fix valgrind complaints when using kill -SIGHUP on libvirtd X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=18b6323ab9e4deede09799e9f964a355d64f3cf0;p=libvirt.git Fix valgrind complaints when using kill -SIGHUP on libvirtd This patch fixes a couple of complaints from valgrind when tickling libvirtd with SIGHUP. The first two files contain fixes for memory leaks. The 3rd one initializes an uninitialized variable. The 4th one is another memory leak. --- diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index fd3d805077..2ac18511e9 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2239,6 +2239,7 @@ virNWFilterPoolObjLoad(virConnectPtr conn, return NULL; } + VIR_FREE(pool->configFile); // for driver reload pool->configFile = strdup(path); if (pool->configFile == NULL) { virReportOOMError(); diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index bf86c9342f..18a6472512 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1403,12 +1403,14 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pools, return NULL; } + VIR_FREE(pool->configFile); // for driver reload pool->configFile = strdup(path); if (pool->configFile == NULL) { virReportOOMError(); virStoragePoolDefFree(def); return NULL; } + VIR_FREE(pool->autostartLink); // for driver reload pool->autostartLink = strdup(autostartLink); if (pool->autostartLink == NULL) { virReportOOMError(); diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index ab7c8cc77e..19379016d0 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1092,6 +1092,12 @@ x86MapFree(struct x86_map *map) x86ModelFree(model); } + while (map->vendors != NULL) { + struct x86_vendor *vendor = map->vendors; + map->vendors = vendor->next; + x86VendorFree(vendor); + } + VIR_FREE(map); } diff --git a/src/util/util.c b/src/util/util.c index c173e491d0..9679dc908f 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -941,9 +941,11 @@ virPipeReadUntilEOF(int outfd, int errfd, fds[0].fd = outfd; fds[0].events = POLLIN; + fds[0].revents = 0; finished[0] = 0; fds[1].fd = errfd; fds[1].events = POLLIN; + fds[1].revents = 0; finished[1] = 0; while(!(finished[0] && finished[1])) {