]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: avoid seclabeltest crash
authorEric Blake <eblake@redhat.com>
Fri, 20 Jul 2012 20:44:54 +0000 (14:44 -0600)
committerEric Blake <eblake@redhat.com>
Fri, 20 Jul 2012 21:04:23 +0000 (15:04 -0600)
Commit a56c347 introduced a use of random numbers into seclabel
handling, but failed to initialize the random number generator
in the testsuite.  Also, fail with usual status, not 255.

* tests/seclabeltest.c (main): Initialize randomness.

tests/seclabeltest.c

index 2f65ec1005b74bba8b06bc836b56c467123083c4..45ab8e4e709a7e6c19b506873059432d8519e8ed 100644 (file)
@@ -6,6 +6,7 @@
 #include <string.h>
 #include <errno.h>
 #include "security/security_driver.h"
+#include "virrandom.h"
 
 int
 main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
@@ -13,10 +14,14 @@ main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
     virSecurityManagerPtr mgr;
     const char *doi, *model;
 
+    if (virThreadInitialize() < 0 ||
+        virRandomInitialize(time(NULL) ^ getpid()))
+        exit(EXIT_FAILURE);
+
     mgr = virSecurityManagerNew(NULL, "QEMU", false, true, false);
     if (mgr == NULL) {
         fprintf (stderr, "Failed to start security driver");
-        exit (-1);
+        exit(EXIT_FAILURE);
     }
 
     model = virSecurityManagerGetModel(mgr);
@@ -24,7 +29,7 @@ main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
     {
         fprintf (stderr, "Failed to copy secModel model: %s",
                  strerror (errno));
-        exit (-1);
+        exit(EXIT_FAILURE);
     }
 
     doi = virSecurityManagerGetDOI(mgr);
@@ -32,7 +37,7 @@ main (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
     {
         fprintf (stderr, "Failed to copy secModel DOI: %s",
                  strerror (errno));
-        exit (-1);
+        exit(EXIT_FAILURE);
     }
 
     virSecurityManagerFree(mgr);