util/uuid: Add UUID_STR_LEN definition

qemu_uuid_unparse() includes a trailing NUL when writing the uuid
string and the buffer size should be UUID_FMT_LEN + 1 bytes. Add a
define for this size and use it where required.

Cc: Fam Zheng <fam@euphon.net>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: "Denis V. Lunev" <den@openvz.org>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
(cherry picked from commit 721da0396cfa0a4859cefb57e32cc79d19d80f54)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
Cédric Le Goater 2023-10-26 09:06:34 +02:00 committed by Michael Tokarev
parent 155856d890
commit 6ede082daf
8 changed files with 10 additions and 9 deletions

View file

@ -130,7 +130,7 @@ static BdrvDirtyBitmap *parallels_load_bitmap(BlockDriverState *bs,
g_autofree uint64_t *l1_table = NULL; g_autofree uint64_t *l1_table = NULL;
BdrvDirtyBitmap *bitmap; BdrvDirtyBitmap *bitmap;
QemuUUID uuid; QemuUUID uuid;
char uuidstr[UUID_FMT_LEN + 1]; char uuidstr[UUID_STR_LEN];
int i; int i;
if (data_size < sizeof(bf)) { if (data_size < sizeof(bf)) {

View file

@ -239,7 +239,7 @@ static void vdi_header_to_le(VdiHeader *header)
static void vdi_header_print(VdiHeader *header) static void vdi_header_print(VdiHeader *header)
{ {
char uuidstr[37]; char uuidstr[UUID_STR_LEN];
QemuUUID uuid; QemuUUID uuid;
logout("text %s", header->text); logout("text %s", header->text);
logout("signature 0x%08x\n", header->signature); logout("signature 0x%08x\n", header->signature);

View file

@ -1105,7 +1105,7 @@ static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
{ {
Property *prop = opaque; Property *prop = opaque;
QemuUUID *uuid = object_field_prop_ptr(obj, prop); QemuUUID *uuid = object_field_prop_ptr(obj, prop);
char buffer[UUID_FMT_LEN + 1]; char buffer[UUID_STR_LEN];
char *p = buffer; char *p = buffer;
qemu_uuid_unparse(uuid, buffer); qemu_uuid_unparse(uuid, buffer);

View file

@ -2271,7 +2271,7 @@ static void vmbus_dev_realize(DeviceState *dev, Error **errp)
VMBus *vmbus = VMBUS(qdev_get_parent_bus(dev)); VMBus *vmbus = VMBUS(qdev_get_parent_bus(dev));
BusChild *child; BusChild *child;
Error *err = NULL; Error *err = NULL;
char idstr[UUID_FMT_LEN + 1]; char idstr[UUID_STR_LEN];
assert(!qemu_uuid_is_null(&vdev->instanceid)); assert(!qemu_uuid_is_null(&vdev->instanceid));
@ -2467,7 +2467,7 @@ static char *vmbus_get_dev_path(DeviceState *dev)
static char *vmbus_get_fw_dev_path(DeviceState *dev) static char *vmbus_get_fw_dev_path(DeviceState *dev)
{ {
VMBusDevice *vdev = VMBUS_DEVICE(dev); VMBusDevice *vdev = VMBUS_DEVICE(dev);
char uuid[UUID_FMT_LEN + 1]; char uuid[UUID_STR_LEN];
qemu_uuid_unparse(&vdev->instanceid, uuid); qemu_uuid_unparse(&vdev->instanceid, uuid);
return g_strdup_printf("%s@%s", qdev_fw_name(dev), uuid); return g_strdup_printf("%s@%s", qdev_fw_name(dev), uuid);

View file

@ -79,6 +79,7 @@ typedef struct {
"%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" "%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx"
#define UUID_FMT_LEN 36 #define UUID_FMT_LEN 36
#define UUID_STR_LEN (UUID_FMT_LEN + 1)
#define UUID_NONE "00000000-0000-0000-0000-000000000000" #define UUID_NONE "00000000-0000-0000-0000-000000000000"

View file

@ -469,8 +469,8 @@ static bool vmstate_uuid_needed(void *opaque)
static int vmstate_uuid_post_load(void *opaque, int version_id) static int vmstate_uuid_post_load(void *opaque, int version_id)
{ {
SaveState *state = opaque; SaveState *state = opaque;
char uuid_src[UUID_FMT_LEN + 1]; char uuid_src[UUID_STR_LEN];
char uuid_dst[UUID_FMT_LEN + 1]; char uuid_dst[UUID_STR_LEN];
if (!qemu_uuid_set) { if (!qemu_uuid_set) {
/* /*

View file

@ -145,7 +145,7 @@ static void test_uuid_unparse(void)
int i; int i;
for (i = 0; i < ARRAY_SIZE(uuid_test_data); i++) { for (i = 0; i < ARRAY_SIZE(uuid_test_data); i++) {
char out[37]; char out[UUID_STR_LEN];
if (!uuid_test_data[i].check_unparse) { if (!uuid_test_data[i].check_unparse) {
continue; continue;

View file

@ -51,7 +51,7 @@ int qemu_uuid_is_equal(const QemuUUID *lhv, const QemuUUID *rhv)
void qemu_uuid_unparse(const QemuUUID *uuid, char *out) void qemu_uuid_unparse(const QemuUUID *uuid, char *out)
{ {
const unsigned char *uu = &uuid->data[0]; const unsigned char *uu = &uuid->data[0];
snprintf(out, UUID_FMT_LEN + 1, UUID_FMT, snprintf(out, UUID_STR_LEN, UUID_FMT,
uu[0], uu[1], uu[2], uu[3], uu[4], uu[5], uu[6], uu[7], uu[0], uu[1], uu[2], uu[3], uu[4], uu[5], uu[6], uu[7],
uu[8], uu[9], uu[10], uu[11], uu[12], uu[13], uu[14], uu[15]); uu[8], uu[9], uu[10], uu[11], uu[12], uu[13], uu[14], uu[15]);
} }