From d9d5ba2bbde89fe058d8db39d0ec3f1d4ec5e6f8 Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Mon, 19 Mar 2001 20:46:50 -0800 Subject: add get_arg_max(). Use sysconf() if ARG_MAX is not defined. --- openbsd-compat/glob.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/openbsd-compat/glob.c b/openbsd-compat/glob.c index 3c3a19131..5ed286211 100644 --- a/openbsd-compat/glob.c +++ b/openbsd-compat/glob.c @@ -37,6 +37,18 @@ #include "includes.h" #include +long +get_arg_max() +{ +#ifdef ARG_MAX + return(ARG_MAX); +#elif defined(HAVE_SYSCONF) && defined(_SC_ARG_MAX) + return(sysconf(_SC_ARG_MAX)); +#else + return(256); /* XXX: arbitrary */ +#endif +} + #if !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) || \ !defined(GLOB_HAS_GL_MATCHC) @@ -689,7 +701,7 @@ globextend(path, pglob, limitp) pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; if ((pglob->gl_flags & GLOB_LIMIT) && - newsize + *limitp >= ARG_MAX) { + newsize + *limitp >= (u_int) get_arg_max()) { errno = 0; return(GLOB_NOSPACE); } -- cgit v1.2.3