diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2003-09-26 08:45:24 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2003-09-26 08:45:24 +0000 |
commit | 0a0a45e22a1f97ac834f757b09fef4b985cee99d (patch) | |
tree | d2d04e59210bb13b3d73991e264fff25c7d42d04 /winsup/cygwin/spawn.cc | |
parent | 8ff4b3513dc5d8c4255e2924222a4cbaa21bbeb2 (diff) | |
download | cygnal-0a0a45e22a1f97ac834f757b09fef4b985cee99d.tar.gz cygnal-0a0a45e22a1f97ac834f757b09fef4b985cee99d.tar.bz2 cygnal-0a0a45e22a1f97ac834f757b09fef4b985cee99d.zip |
* spawn.cc (spawn_guts): Set errno to E2BIG if command line is
longer than CreateProcess allows (32K).
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r-- | winsup/cygwin/spawn.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 30d1dd749..ce61c22d5 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -587,6 +587,13 @@ spawn_guts (const char * prog_arg, const char *const *argv, else one_line.add ("", 1); MALLOC_CHECK; + + if (one_line.ix > 32767) + { + debug_printf ("Command line too long (>32K), return E2BIG"); + set_errno (E2BIG); + return -1; + } } char *envblock; |