]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Fix diagnostics on MS-Windows when environment is too large
authorGisle Vanem <gvanem@yahoo.no>
Sat, 7 Nov 2015 09:27:03 +0000 (11:27 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 7 Nov 2015 09:27:03 +0000 (11:27 +0200)
* w32/subproc/sub_proc.c (process_begin): Fix test of the error
cause when the environment block is too large.

Copyright-paperwork-exempt: yes.

w32/subproc/sub_proc.c

index 3ce7ad3e1321a92754f32e92a3cdcb6dafc3af28..a1e4facabc593f3e6a6eba6e617a509d35b2ed98 100644 (file)
@@ -753,14 +753,15 @@ process_begin(
 
         if (envp) {
                 if (arr2envblk(envp, &envblk, &envsize_needed) == FALSE) {
-                        pproc->last_err = 0;
                         pproc->lerrno = E_NO_MEM;
                         free( command_line );
-                        if (pproc->last_err == ERROR_INVALID_PARAMETER
+                        if ((pproc->last_err == ERROR_INVALID_PARAMETER
+                            || pproc->last_err == ERROR_MORE_DATA)
                             && envsize_needed > 32*1024) {
                                 fprintf (stderr, "CreateProcess failed, probably because environment is too large (%d bytes).\n",
                                          envsize_needed);
                         }
+                        pproc->last_err = 0;
                         return(-1);
                 }
         }