提交 701477e8 编写于 作者: C Chris Lalancette

Make openvzGetVPSUUID take a len.

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: NChris Lalancette <clalance@redhat.com>
上级 9be5773f
......@@ -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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册