[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxenlight: fix uuid code
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1259675145 0 # Node ID d1ac88bf91bf0a527e4be419090c593c9c69c4ef # Parent 8bd6d48300bd54e21ce0142041becc87074bde9e libxenlight: fix uuid code - Use proper constants - Use functions from the uuid library - Fix broken pointer handling in libxl_dominfo Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx> --- tools/libxl/libxl.c | 4 ++-- tools/libxl/libxl.h | 2 +- tools/libxl/libxl_utils.c | 14 +++++++------- tools/libxl/xen_uuid.h | 4 ++++ 4 files changed, 14 insertions(+), 10 deletions(-) diff -r 8bd6d48300bd -r d1ac88bf91bf tools/libxl/libxl.c --- a/tools/libxl/libxl.c Tue Dec 01 13:44:13 2009 +0000 +++ b/tools/libxl/libxl.c Tue Dec 01 13:45:45 2009 +0000 @@ -284,7 +284,7 @@ redo: ptr = ptr2; size *= 2; } - memcpy(ptr[index].uuid, info[i].handle, 16 * sizeof(uint8_t)); + memcpy(&(ptr[index].uuid), info[i].handle, sizeof(xen_domain_handle_t)); ptr[index].domid = info[i].domain; first_domain = info[i].domain + 1; index++; @@ -478,7 +478,7 @@ static int libxl_destroy_device_model(st int libxl_domain_destroy(struct libxl_ctx *ctx, uint32_t domid, int force) { - char *dom_path, vm_path[41]; + char *dom_path, vm_path[UUID_LEN_STR + 5]; xen_uuid_t *uuid; int rc; diff -r 8bd6d48300bd -r d1ac88bf91bf tools/libxl/libxl.h --- a/tools/libxl/libxl.h Tue Dec 01 13:44:13 2009 +0000 +++ b/tools/libxl/libxl.h Tue Dec 01 13:45:45 2009 +0000 @@ -28,7 +28,7 @@ typedef void (*libxl_log_callback)(void typedef void (*libxl_log_callback)(void *userdata, int loglevel, const char *file, int line, const char *func, char *s); struct libxl_dominfo { - xen_uuid_t uuid[16]; + xen_uuid_t uuid; uint32_t domid; }; diff -r 8bd6d48300bd -r d1ac88bf91bf tools/libxl/libxl_utils.c --- a/tools/libxl/libxl_utils.c Tue Dec 01 13:44:13 2009 +0000 +++ b/tools/libxl/libxl_utils.c Tue Dec 01 13:45:45 2009 +0000 @@ -92,7 +92,7 @@ int libxl_uuid_to_domid(struct libxl_ctx int nb_domain, i; struct libxl_dominfo *info = libxl_domain_list(ctx, &nb_domain); for (i = 0; i < nb_domain; i++) { - if (!memcmp(info[i].uuid, uuid, 16)) { + if (!xen_uuid_compare(&(info[i].uuid), uuid)) { *domid = info[i].domid; free(info); return 0; @@ -108,8 +108,8 @@ int libxl_domid_to_uuid(struct libxl_ctx struct libxl_dominfo *info = libxl_domain_list(ctx, &nb_domain); for (i = 0; i < nb_domain; i++) { if (domid == info[i].domid) { - *uuid = libxl_zalloc(ctx, 16); - memcpy(*uuid, info[i].uuid, 16); + *uuid = libxl_zalloc(ctx, sizeof(xen_uuid_t)); + xen_uuid_copy(*uuid, &(info[i].uuid)); free(info); return 0; } @@ -121,9 +121,9 @@ int libxl_is_uuid(char *s) int libxl_is_uuid(char *s) { int i; - if (!s || strlen(s) != 36) - return 0; - for (i = 0; i < 36; i++) { + if (!s || strlen(s) != UUID_LEN_STR) + return 0; + for (i = 0; i < UUID_LEN_STR; i++) { if (i == 8 || i == 13 || i == 18 || i == 23) { if (s[i] != '-') return 0; @@ -147,7 +147,7 @@ xen_uuid_t *libxl_string_to_uuid(struct char *libxl_uuid_to_string(struct libxl_ctx *ctx, xen_uuid_t *uuid) { - char uuid_str[39]; + char uuid_str[UUID_LEN_STR + 3]; if (!uuid) return NULL; xen_uuid_to_string(uuid, uuid_str, sizeof(uuid_str)); diff -r 8bd6d48300bd -r d1ac88bf91bf tools/libxl/xen_uuid.h --- a/tools/libxl/xen_uuid.h Tue Dec 01 13:44:13 2009 +0000 +++ b/tools/libxl/xen_uuid.h Tue Dec 01 13:45:45 2009 +0000 @@ -128,4 +128,8 @@ static inline int xen_uuid_compare(xen_u #endif +#ifndef UUID_LEN_STR +#define UUID_LEN_STR (128 /*bit*/ / 4 /*nibbles*/ + 4 /*hyphens*/) +#endif /* UUID_LEN_STR */ + #endif /* __XEN_UUID_H__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |