aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lalancette <clalance@redhat.com>2010-07-30 10:19:51 -0400
committerChris Lalancette <clalance@redhat.com>2010-07-30 11:04:07 -0400
commit435fa6d7098769e36c840a4a53b5e0a9b9c4bdcc (patch)
tree26c6b0cb4aee9a3b4eae8eb43c3cae0d6868ae63
parentDo not activate boot=on on devices when not using KVM (diff)
downloadlibvirt-435fa6d7098769e36c840a4a53b5e0a9b9c4bdcc.tar.gz
libvirt-435fa6d7098769e36c840a4a53b5e0a9b9c4bdcc.tar.bz2
libvirt-435fa6d7098769e36c840a4a53b5e0a9b9c4bdcc.zip
Fix DMI uuid parsing.
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>
-rw-r--r--src/util/uuid.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/util/uuid.c b/src/util/uuid.c
index f18814885..9cafc2ada 100644
--- a/src/util/uuid.c
+++ b/src/util/uuid.c
@@ -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;
}