From 168f12375dacd54e8dede3f94d2eec6a7ab5ac17 Mon Sep 17 00:00:00 2001 From: Gisle Vanem Date: Sat, 7 Nov 2015 11:27:03 +0200 Subject: [PATCH] Fix diagnostics on MS-Windows when environment is too large * 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/w32/subproc/sub_proc.c b/w32/subproc/sub_proc.c index 3ce7ad3e..a1e4faca 100644 --- a/w32/subproc/sub_proc.c +++ b/w32/subproc/sub_proc.c @@ -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); } }