virLogManagerDomainReadLogFile: Don't do dummy allocs

Since we pass dummy variables @fdout and @fdoutlen into
virNetClientProgramCall() we make it alloc @fdout array (even
though it's an array of 0 elements since vitlogd can hardly pass
us some FDs at this stage). Nevertheless, it's an allocation not
followed by free():

==29385== 0 bytes in 60 blocks are definitely lost in loss record 2 of 1,009
==29385==    at 0x4C2C070: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==29385==    by 0x54B99EF: virAllocN (viralloc.c:191)
==29385==    by 0x56821B1: virNetClientProgramCall (virnetclientprogram.c:359)
==29385==    by 0x563B304: virLogManagerDomainReadLogFile (log_manager.c:272)
==29385==    by 0x217CD613: qemuDomainLogContextRead (qemu_domain.c:2485)
==29385==    by 0x217EDC76: qemuProcessReadLog (qemu_process.c:1660)
==29385==    by 0x217EDE1D: qemuProcessReportLogError (qemu_process.c:1696)
==29385==    by 0x217EE8C1: qemuProcessWaitForMonitor (qemu_process.c:1957)
==29385==    by 0x217F6636: qemuProcessLaunch (qemu_process.c:4955)
==29385==    by 0x217F71A4: qemuProcessStart (qemu_process.c:5152)
==29385==    by 0x21846582: qemuDomainObjStart (qemu_driver.c:7396)
==29385==    by 0x218467DE: qemuDomainCreateWithFlags (qemu_driver.c:7450)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2016-01-18 11:13:22 +01:00
parent 105b51f42e
commit c03fbecc7c

View File

@ -256,8 +256,6 @@ virLogManagerDomainReadLogFile(virLogManagerPtr mgr,
{ {
struct virLogManagerProtocolDomainReadLogFileArgs args; struct virLogManagerProtocolDomainReadLogFileArgs args;
struct virLogManagerProtocolDomainReadLogFileRet ret; struct virLogManagerProtocolDomainReadLogFileRet ret;
int *fdout = NULL;
size_t fdoutlen = 0;
char *rv = NULL; char *rv = NULL;
memset(&args, 0, sizeof(args)); memset(&args, 0, sizeof(args));
@ -273,7 +271,7 @@ virLogManagerDomainReadLogFile(virLogManagerPtr mgr,
mgr->client, mgr->client,
mgr->serial++, mgr->serial++,
VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE, VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE,
0, NULL, &fdoutlen, &fdout, 0, NULL, NULL, NULL,
(xdrproc_t)xdr_virLogManagerProtocolDomainReadLogFileArgs, &args, (xdrproc_t)xdr_virLogManagerProtocolDomainReadLogFileArgs, &args,
(xdrproc_t)xdr_virLogManagerProtocolDomainReadLogFileRet, &ret) < 0) (xdrproc_t)xdr_virLogManagerProtocolDomainReadLogFileRet, &ret) < 0)
goto cleanup; goto cleanup;