mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-28 05:00:59 +01:00
12489: pathconf for unlimited fs
This commit is contained in:
parent
30e35ee2ed
commit
de7b6730bc
3 changed files with 13 additions and 6 deletions
|
|
@ -1,5 +1,8 @@
|
||||||
2000-08-02 Clint Adams <schizo@debian.org>
|
2000-08-02 Clint Adams <schizo@debian.org>
|
||||||
|
|
||||||
|
* 12489: Src/Modules/files.c, Src/Modules/parameter.c: check
|
||||||
|
errno change from pathconf() in case of unlimited path length.
|
||||||
|
|
||||||
* 12472: configure.in, Src/Modules/files.c,
|
* 12472: configure.in, Src/Modules/files.c,
|
||||||
Src/Modules/parameter.c: use pathconf() instead
|
Src/Modules/parameter.c: use pathconf() instead
|
||||||
of PATH_MAX if possible.
|
of PATH_MAX if possible.
|
||||||
|
|
|
||||||
|
|
@ -95,12 +95,13 @@ bin_mkdir(char *nam, char **args, char *ops, int func)
|
||||||
while(ptr > *args + (**args == '/') && *--ptr == '/')
|
while(ptr > *args + (**args == '/') && *--ptr == '/')
|
||||||
*ptr = 0;
|
*ptr = 0;
|
||||||
#ifdef HAVE_PATHCONF
|
#ifdef HAVE_PATHCONF
|
||||||
if((pathmax = pathconf(*args,_PC_PATH_MAX)) == -1) {
|
errno = 0;
|
||||||
|
if(((pathmax = pathconf(*args,_PC_PATH_MAX)) == -1) && errno) {
|
||||||
zwarnnam(nam, "%s: %e", *args, errno);
|
zwarnnam(nam, "%s: %e", *args, errno);
|
||||||
err = 1;
|
err = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if(ztrlen(*args) > pathmax - 1) {
|
else if((ztrlen(*args) > pathmax - 1) && errno != -1) {
|
||||||
#else
|
#else
|
||||||
if(ztrlen(*args) > PATH_MAX - 1) {
|
if(ztrlen(*args) > PATH_MAX - 1) {
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1400,11 +1400,13 @@ setpmnameddir(Param pm, char *value)
|
||||||
#ifdef HAVE_PATHCONF
|
#ifdef HAVE_PATHCONF
|
||||||
int pathmax = 0;
|
int pathmax = 0;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
pathmax = pathconf(value, _PC_PATH_MAX);
|
pathmax = pathconf(value, _PC_PATH_MAX);
|
||||||
if (pathmax == -1) {
|
if ((pathmax == -1) && errno) {
|
||||||
zwarn("%s: %e", value, errno);
|
zwarn("%s: %e", value, errno);
|
||||||
}
|
}
|
||||||
else if (!value || *value != '/' || strlen(value) >= pathmax)
|
else if (!value || *value != '/' || ((strlen(value) >= pathmax) &&
|
||||||
|
pathmax != -1))
|
||||||
#else
|
#else
|
||||||
if (!value || *value != '/' || strlen(value) >= PATH_MAX)
|
if (!value || *value != '/' || strlen(value) >= PATH_MAX)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1456,7 +1458,8 @@ setpmnameddirs(Param pm, HashTable ht)
|
||||||
v.pm = (Param) hn;
|
v.pm = (Param) hn;
|
||||||
|
|
||||||
#ifdef HAVE_PATHCONF
|
#ifdef HAVE_PATHCONF
|
||||||
if((pathmax = pathconf(val, _PC_PATH_MAX)) == -1)
|
errno = 0;
|
||||||
|
if((((pathmax = pathconf(val, _PC_PATH_MAX)) == -1)) && errno)
|
||||||
zwarn("%s: %e", val, errno);
|
zwarn("%s: %e", val, errno);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1464,7 +1467,7 @@ setpmnameddirs(Param pm, HashTable ht)
|
||||||
#ifdef HAVE_PATHCONF
|
#ifdef HAVE_PATHCONF
|
||||||
strlen(val) >= PATH_MAX)
|
strlen(val) >= PATH_MAX)
|
||||||
#else
|
#else
|
||||||
strlen(val) >= pathmax)
|
((strlen(val) >= pathmax)) && pathmax != -1)
|
||||||
#endif
|
#endif
|
||||||
zwarn("invalid value: %s", val, 0);
|
zwarn("invalid value: %s", val, 0);
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue