diff --git a/src/openvz_conf.c b/src/openvz_conf.c index 6e9af675b6b4421987bf8e19abf36e3473caa96d..a172fe3fadda71bcb1f70ed8f600555345a0be75 100644 --- a/src/openvz_conf.c +++ b/src/openvz_conf.c @@ -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) {