summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2016-02-02 14:26:58 +0100
committerAnatol Belski <ab@php.net>2016-02-02 15:17:09 +0100
commit4e1b8701573698f56e12672e4991d7e6239138d2 (patch)
tree6a0b6ee19fea7013f6bc9dcbbac494e452f2b9c7
parent6a4825675233deeb57955e31a819c5e56b4e7335 (diff)
downloadphp-git-PHP-7.0.3.tar.gz
reapply the sysconf error check patchphp-7.0.3PHP-7.0.3
-rw-r--r--ext/standard/exec.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index cbaaedbc83..a73d0b4e6e 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -50,6 +50,10 @@
#include <unistd.h>
#endif
+#if HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
static int cmd_max_len;
/* {{{ PHP_MINIT_FUNCTION(exec) */
@@ -57,6 +61,13 @@ PHP_MINIT_FUNCTION(exec)
{
#ifdef _SC_ARG_MAX
cmd_max_len = sysconf(_SC_ARG_MAX);
+ if (-1 == cmd_max_len) {
+#ifdef _POSIX_ARG_MAX
+ cmd_max_len = _POSIX_ARG_MAX;
+#else
+ cmd_max_len = 4096;
+#endif
+ }
#elif defined(ARG_MAX)
cmd_max_len = ARG_MAX;
#elif defined(PHP_WIN32)