Commit 0430165f7b67145768aa198239e381b1f1a8ba45

ckolivas 2013-10-18T10:26:31

Fix cgcompletion return code and free on successful completion.

diff --git a/util.c b/util.c
index 7494b6a..c05d586 100644
--- a/util.c
+++ b/util.c
@@ -2510,11 +2510,11 @@ bool _cg_completion_timeout(void *fn, void *fnarg, int timeout, const char *file
 {
 	struct cg_completion *cgc;
 	pthread_t pthread;
-	bool ret;
+	bool ret = false;
 
 	cgc = malloc(sizeof(struct cg_completion));
 	if (unlikely(!cgc))
-		return false;
+		return ret;
 	cgsem_init(&cgc->cgsem);
 	cgc->fn = fn;
 	cgc->fnarg = fnarg;
@@ -2522,7 +2522,7 @@ bool _cg_completion_timeout(void *fn, void *fnarg, int timeout, const char *file
 	pthread_create(&pthread, NULL, completion_thread, (void *)cgc);
 
 	ret = cgsem_mswait(&cgc->cgsem, timeout);
-	if (ret)
+	if (!ret)
 		free(cgc);
-	return ret;
+	return !ret;
 }