mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 05:17:59 +03:00
Fix buffer termination off-by-1 in link comparison code
This commit is contained in:
parent
6d3f1d516e
commit
b4f841d92f
@ -1,3 +1,8 @@
|
|||||||
|
Sat Dec 1 10:22:34 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
* src/qemu_driver.c: Fix off-by-1 buffer NULL termination in
|
||||||
|
symlink comparison code
|
||||||
|
|
||||||
Fri Nov 30 17:50:34 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
Fri Nov 30 17:50:34 EST 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
* src/xml.c, src/xml.h: Disable xen specific functions if
|
* src/xml.c, src/xml.h: Disable xen specific functions if
|
||||||
|
@ -2667,7 +2667,7 @@ checkLinkPointsTo(const char *checkLink,
|
|||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
strncpy(dir, checkLink, PATH_MAX);
|
strncpy(dir, checkLink, PATH_MAX);
|
||||||
dir[PATH_MAX] = '\0';
|
dir[PATH_MAX-1] = '\0';
|
||||||
|
|
||||||
if (!(p = strrchr(dir, '/'))) {
|
if (!(p = strrchr(dir, '/'))) {
|
||||||
qemudLog(QEMUD_WARN, "Symlink path '%s' is not absolute", checkLink);
|
qemudLog(QEMUD_WARN, "Symlink path '%s' is not absolute", checkLink);
|
||||||
@ -2685,7 +2685,7 @@ checkLinkPointsTo(const char *checkLink,
|
|||||||
}
|
}
|
||||||
|
|
||||||
strncpy(dest, tmp, PATH_MAX);
|
strncpy(dest, tmp, PATH_MAX);
|
||||||
dest[PATH_MAX] = '\0';
|
dest[PATH_MAX-1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* canonicalize both paths */
|
/* canonicalize both paths */
|
||||||
@ -2693,14 +2693,14 @@ checkLinkPointsTo(const char *checkLink,
|
|||||||
qemudLog(QEMUD_WARN, "Failed to expand path '%s' :%s",
|
qemudLog(QEMUD_WARN, "Failed to expand path '%s' :%s",
|
||||||
dest, strerror(errno));
|
dest, strerror(errno));
|
||||||
strncpy(real, dest, PATH_MAX);
|
strncpy(real, dest, PATH_MAX);
|
||||||
real[PATH_MAX] = '\0';
|
real[PATH_MAX-1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!realpath(checkDest, checkReal)) {
|
if (!realpath(checkDest, checkReal)) {
|
||||||
qemudLog(QEMUD_WARN, "Failed to expand path '%s' :%s",
|
qemudLog(QEMUD_WARN, "Failed to expand path '%s' :%s",
|
||||||
checkDest, strerror(errno));
|
checkDest, strerror(errno));
|
||||||
strncpy(checkReal, checkDest, PATH_MAX);
|
strncpy(checkReal, checkDest, PATH_MAX);
|
||||||
checkReal[PATH_MAX] = '\0';
|
checkReal[PATH_MAX-1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* compare */
|
/* compare */
|
||||||
|
Loading…
Reference in New Issue
Block a user