From: Eric Blake Date: Fri, 20 Jul 2012 20:44:54 +0000 (-0600) Subject: tests: avoid seclabeltest crash X-Git-Tag: CVE-2012-3445~79 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a22a36e8feaef19413e1a6af533eaa50f3c5df2d;p=thirdparty%2Flibvirt.git tests: avoid seclabeltest crash 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. --- diff --git a/tests/seclabeltest.c b/tests/seclabeltest.c index 2f65ec1005..45ab8e4e70 100644 --- a/tests/seclabeltest.c +++ b/tests/seclabeltest.c @@ -6,6 +6,7 @@ #include #include #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);