]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
shunloadtest: Resolve Coverity CHECKED_RETURN error
authorJohn Ferlan <jferlan@redhat.com>
Thu, 16 May 2013 13:50:58 +0000 (09:50 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 21 May 2013 13:22:21 +0000 (09:22 -0400)
The shunloadStart function didn't check the status of virInitialize which
was flagged by Coverity.  Adjust the function and shunloadtest in order
to handle the situation.

tests/shunloadhelper.c
tests/shunloadtest.c

index a8f5aef4e9d44e0d8bd3a6542982698a96ea1258..f2afbe88721244312234755bbc02948b9ac3253d 100644 (file)
@@ -36,16 +36,20 @@ static void shunloadError(void *userData ATTRIBUTE_UNUSED,
 {
 }
 
-void shunloadStart(void);
+int shunloadStart(void);
 
-void shunloadStart(void) {
+int shunloadStart(void) {
     virConnectPtr conn;
 
     virSetErrorFunc(NULL, shunloadError);
-    virInitialize();
+    if (virInitialize() < 0)
+        return -1;
 
     conn = virConnectOpen("test:///default");
     virDomainDestroy(NULL);
-    if (conn)
+    if (conn) {
         virConnectClose(conn);
+        return 0;
+    }
+    return -1;
 }
index 8271b93647acb4c26ea8d804d46437a7a325f9b6..8190e97a75cd655b47d4e711ff6e2841ccf6b48a 100644 (file)
 pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
 pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
 bool running = false;
+bool failstart = false;
 bool quit = false;
 
 static void *threadMain(void *arg)
 {
-    void (*startup)(void) = arg;
-
-    startup();
-
-    pthread_mutex_lock(&lock);
-    running = true;
-    pthread_cond_signal(&cond);
+    int (*startup)(void) = arg;
+
+    if (startup() < 0) {
+        pthread_mutex_lock(&lock);
+        failstart = true;
+        pthread_cond_signal(&cond);
+    } else {
+        pthread_mutex_lock(&lock);
+        running = true;
+        pthread_cond_signal(&cond);
+    }
 
     while (!quit) {
         pthread_cond_wait(&cond, &lock);
@@ -119,7 +124,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv)
 
     /* Wait for the thread to start and call libvirt */
     pthread_mutex_lock(&lock);
-    while (!running) {
+    while (!running && !failstart) {
         pthread_cond_wait(&cond, &lock);
     }
 
@@ -138,7 +143,10 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv)
      * causing a SEGV !
      */
 
-    fprintf(stderr, "OK\n");
+    if (failstart)
+        fprintf(stderr, "FAIL to initialize libvirt\n");
+    else
+        fprintf(stderr, "OK\n");
 
     return 0;
 }