OSDN Git Service

* spawn.cc (spawn_guts): Set errno to E2BIG if command line is
authorcorinna <corinna>
Fri, 26 Sep 2003 08:45:24 +0000 (08:45 +0000)
committercorinna <corinna>
Fri, 26 Sep 2003 08:45:24 +0000 (08:45 +0000)
longer than CreateProcess allows (32K).

winsup/cygwin/ChangeLog
winsup/cygwin/spawn.cc

index 0a2fff3..b0c3d75 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-26  Corinna Vinschen  <corinna@vinschen.de>
+
+       * spawn.cc (spawn_guts): Set errno to E2BIG if command line is
+       longer than CreateProcess allows (32K).
+
 2003-09-25  Christopher Faylor  <cgf@redhat.com>
 
        * dtable.cc (build_fh_name): Return pointer to a 'nodevice' rather than
index 30d1dd7..ce61c22 100644 (file)
@@ -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;