]> xenbits.xensource.com Git - libvirt.git/commitdiff
Make openvzGetVPSUUID take a len.
authorChris Lalancette <clalance@redhat.com>
Mon, 3 Aug 2009 11:50:27 +0000 (13:50 +0200)
committerChris Lalancette <clalance@redhat.com>
Tue, 11 Aug 2009 11:31:32 +0000 (13:31 +0200)
Minor fix to openvzGetVPSUUID to make it take a length parameter.
This ensures that it doesn't make assumptions about the length
of the UUID buffer, and paves the way for removal of strncpy in
the future.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
src/openvz_conf.c

index 6e9af675b6b4421987bf8e19abf36e3473caa96d..a172fe3fadda71bcb1f70ed8f600555345a0be75 100644 (file)
@@ -54,7 +54,7 @@
 #define VIR_FROM_THIS VIR_FROM_OPENVZ
 
 static char *openvzLocateConfDir(void);
-static int openvzGetVPSUUID(int vpsid, char *uuidstr);
+static int openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len);
 static int openvzLocateConfFile(int vpsid, char *conffile, int maxlen, const char *ext);
 static int openvzAssignUUIDs(void);
 
@@ -469,7 +469,7 @@ int openvzLoadDomains(struct openvz_driver *driver) {
         if (virAsprintf(&dom->def->name, "%i", veid) < 0)
             goto no_memory;
 
-        openvzGetVPSUUID(veid, uuidstr);
+        openvzGetVPSUUID(veid, uuidstr, sizeof(uuidstr));
         ret = virUUIDParse(uuidstr, dom->def->uuid);
 
         if (ret == -1) {
@@ -805,7 +805,7 @@ openvz_readline(int fd, char *ptr, int maxlen)
 }
 
 static int
-openvzGetVPSUUID(int vpsid, char *uuidstr)
+openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len)
 {
     char conf_file[PATH_MAX];
     char line[1024];
@@ -832,7 +832,7 @@ openvzGetVPSUUID(int vpsid, char *uuidstr)
 
         sscanf(line, "%s %s\n", iden, uuidbuf);
         if(STREQ(iden, "#UUID:")) {
-            strncpy(uuidstr, uuidbuf, VIR_UUID_STRING_BUFLEN);
+            strncpy(uuidstr, uuidbuf, len);
             break;
         }
     }
@@ -856,7 +856,7 @@ openvzSetDefinedUUID(int vpsid, unsigned char *uuid)
     if (openvzLocateConfFile(vpsid, conf_file, PATH_MAX, "conf")<0)
        return -1;
 
-    if (openvzGetVPSUUID(vpsid, uuidstr))
+    if (openvzGetVPSUUID(vpsid, uuidstr, sizeof(uuidstr)))
         return -1;
 
     if (uuidstr[0] == 0) {