]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix DMI uuid parsing.
authorChris Lalancette <clalance@redhat.com>
Fri, 30 Jul 2010 14:19:51 +0000 (10:19 -0400)
committerChris Lalancette <clalance@redhat.com>
Fri, 30 Jul 2010 15:04:07 +0000 (11:04 -0400)
valgrind was complaining that virUUIDParse was depending on
an uninitialized value.  Indeed it was; virSetHostUUIDStr()
didn't initialize the dmiuuid buffer to 0's, meaning that
anything after the string read from /sys was uninitialized.
Clear out the dmiuuid buffer before use, and make sure to
always leave a \0 at the end.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
src/util/uuid.c

index f18814885e538eeab54e89730bd7d8aa121507ee..9cafc2ada14b582f486f1832e5c9a570e4e0c688 100644 (file)
@@ -286,7 +286,8 @@ virSetHostUUIDStr(const char *uuid)
         return EEXIST;
 
     if (!uuid) {
-        if (!getDMISystemUUID(dmiuuid, sizeof(dmiuuid))) {
+        memset(dmiuuid, 0, sizeof(dmiuuid));
+        if (!getDMISystemUUID(dmiuuid, sizeof(dmiuuid) - 1)) {
             if (!virUUIDParse(dmiuuid, host_uuid))
                 return 0;
         }