From 11a1181260416e9f8026dec70d067a778511afe4 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 14 Jan 2013 10:35:45 -0500 Subject: [PATCH] commandtest: Resolve some coverity resource leaks --- tests/commandtest.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/commandtest.c b/tests/commandtest.c index 93c6333bd7..ac369f97f7 100644 --- a/tests/commandtest.c +++ b/tests/commandtest.c @@ -680,7 +680,7 @@ static int test17(const void *unused ATTRIBUTE_UNUSED) goto cleanup; } - if (!outbuf || *outbuf) { + if (*outbuf) { puts("output buffer is not an allocated empty string"); goto cleanup; } @@ -702,7 +702,7 @@ static int test17(const void *unused ATTRIBUTE_UNUSED) goto cleanup; } - if (!outbuf || *outbuf || !errbuf || *errbuf) { + if (*outbuf || *errbuf) { puts("output buffers are not allocated empty strings"); goto cleanup; } @@ -936,6 +936,7 @@ mymain(void) int fd; virCommandTestDataPtr test = NULL; int timer = -1; + int virinitret; if (virThreadInitialize() < 0) return EXIT_FAILURE; @@ -963,18 +964,21 @@ mymain(void) dup2(fd, 6) < 0 || dup2(fd, 7) < 0 || dup2(fd, 8) < 0 || - (fd > 8 && VIR_CLOSE(fd) < 0)) + (fd > 8 && VIR_CLOSE(fd) < 0)) { + VIR_FORCE_CLOSE(fd); return EXIT_FAILURE; + } /* Prime the debug/verbose settings from the env vars, * since we're about to reset 'environ' */ ignore_value(virTestGetDebug()); ignore_value(virTestGetVerbose()); - if (virInitialize() < 0) - return EXIT_FAILURE; + /* Make sure to not leak fd's */ + virinitret = virInitialize(); /* Phase two of killing interfering fds; see above. */ + /* coverity[overwrite_var] - silence the obvious */ fd = 3; VIR_FORCE_CLOSE(fd); fd = 4; @@ -988,6 +992,9 @@ mymain(void) fd = 8; VIR_FORCE_CLOSE(fd); + if (virinitret < 0) + return EXIT_FAILURE; + virEventRegisterDefaultImpl(); if (VIR_ALLOC(test) < 0) { virReportOOMError();