WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxenlight: fix uuid code

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxenlight: fix uuid code
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 01 Dec 2009 06:30:37 -0800
Delivery-date: Tue, 01 Dec 2009 06:31:34 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxenlight: fix uuid code, Xen patchbot-unstable <=