From 30e35ee2ed1cf4a574fc9017229c43fc84105b5b Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Wed, 2 Aug 2000 13:54:17 +0000 Subject: 12472: limited pathconf support --- Src/Modules/parameter.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Src/Modules/parameter.c') diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index b8bae47ce..b19202625 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -1397,7 +1397,17 @@ scanpmjobdirs(HashTable ht, ScanFunc func, int flags) static void setpmnameddir(Param pm, char *value) { +#ifdef HAVE_PATHCONF + int pathmax = 0; + + pathmax = pathconf(value, _PC_PATH_MAX); + if (pathmax == -1) { + zwarn("%s: %e", value, errno); + } + else if (!value || *value != '/' || strlen(value) >= pathmax) +#else if (!value || *value != '/' || strlen(value) >= PATH_MAX) +#endif zwarn("invalid value: %s", value, 0); else adduserdir(pm->nam, value, 0, 1); @@ -1420,6 +1430,9 @@ setpmnameddirs(Param pm, HashTable ht) { int i; HashNode hn, next, hd; +#ifdef HAVE_PATHCONF + int pathmax = 0; +#endif if (!ht) return; @@ -1442,8 +1455,17 @@ setpmnameddirs(Param pm, HashTable ht) v.arr = NULL; v.pm = (Param) hn; +#ifdef HAVE_PATHCONF + if((pathmax = pathconf(val, _PC_PATH_MAX)) == -1) + zwarn("%s: %e", val, errno); + else +#endif if (!(val = getstrvalue(&v)) || *val != '/' || +#ifdef HAVE_PATHCONF strlen(val) >= PATH_MAX) +#else + strlen(val) >= pathmax) +#endif zwarn("invalid value: %s", val, 0); else adduserdir(hn->nam, val, 0, 1); -- cgit 1.4.1