提交 ebbcc026 编写于 作者: D Daniel P. Berrange

Remove last usage of PATH_MAX and ban its future use

Remove a number of pointless checks against PATH_MAX and
add a syntax-check rule to prevent its use in future
Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 0d07aa51
......@@ -408,6 +408,11 @@ sc_prohibit_VIR_ERR_NO_MEMORY:
halt='use virReportOOMError, not V'IR_ERR_NO_MEMORY \
$(_sc_search_regexp)
sc_prohibit_PATH_MAX:
@prohibit='\<P''ATH_MAX\>' \
halt='dynamically allocate paths, do not use P'ATH_MAX \
$(_sc_search_regexp)
# Use a subshell for each function, to give the optimal warning message.
include $(srcdir)/Makefile.nonreentrant
sc_prohibit_nonreentrant:
......
......@@ -473,7 +473,7 @@ valid_name(const char *name)
* used to subvert the profile */
const char *bad = " /[]*";
if (strlen(name) == 0 || strlen(name) > PATH_MAX - 1)
if (strlen(name) == 0)
return -1;
if (strcspn(name, bad) != strlen(name))
......@@ -544,7 +544,7 @@ valid_path(const char *path, const bool readonly)
"/sys/devices/pci" /* for hostdev pci devices */
};
if (path == NULL || strlen(path) > PATH_MAX - 1) {
if (path == NULL) {
vah_error(NULL, 0, _("bad pathname"));
return -1;
}
......
......@@ -251,7 +251,7 @@ virStorageBackendSCSINewLun(virStoragePoolObjPtr pool,
goto free_vol;
}
if (STREQLEN(devpath, vol->target.path, PATH_MAX) &&
if (STREQ(devpath, vol->target.path) &&
!(STREQ(pool->def->target.path, "/dev") ||
STREQ(pool->def->target.path, "/dev/"))) {
......
......@@ -501,8 +501,6 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
/* Extract the source file path*/
if (!(offset = strchr(head, ',')))
goto skipdisk;
if ((offset - head) >= (PATH_MAX-1))
goto skipdisk;
if (offset == head) {
disk->src = NULL; /* No source file given, eg CDROM with no media */
......
......@@ -15542,11 +15542,12 @@ editWriteToTempFile (vshControl *ctl, const char *doc)
const char *tmpdir;
int fd;
ret = vshMalloc(ctl, PATH_MAX);
tmpdir = getenv ("TMPDIR");
if (!tmpdir) tmpdir = "/tmp";
snprintf (ret, PATH_MAX, "%s/virshXXXXXX.xml", tmpdir);
if (virAsprintf(&ret, "%s/virshXXXXXX.xml", tmpdir) < 0) {
vshError(ctl, "%s", _("out of memory"));
return NULL;
}
fd = mkstemps(ret, 4);
if (fd == -1) {
vshError(ctl, _("mkstemps: failed to create temporary file: %s"),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册