diff options
author | Chris Lalancette <clalance@redhat.com> | 2010-07-30 10:19:51 -0400 |
---|---|---|
committer | Chris Lalancette <clalance@redhat.com> | 2010-07-30 11:04:07 -0400 |
commit | 435fa6d7098769e36c840a4a53b5e0a9b9c4bdcc (patch) | |
tree | 26c6b0cb4aee9a3b4eae8eb43c3cae0d6868ae63 | |
parent | Do not activate boot=on on devices when not using KVM (diff) | |
download | libvirt-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.c | 3 |
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; } |