1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-22 17:34:18 +03:00

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: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2012-05-25 14:14:07 +01:00
parent 0d07aa512c
commit ebbcc02639
5 changed files with 12 additions and 8 deletions

5
cfg.mk
View File

@ -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:

View File

@ -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;
}

View File

@ -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/"))) {

View File

@ -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 */

View File

@ -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"),