[SV 50021] Avoid infloop on MS-Windows with short scripts

* job.c (reap_children) [WINDOWS32]: Avoid recursive call to
reap_children when the argument passed to
map_windows32_error_to_string is negative or too large.
This commit is contained in:
Eli Zaretskii 2017-01-11 20:43:41 +02:00
parent d351c1fef2
commit a95cb30ab5

9
job.c
View File

@ -774,9 +774,12 @@ reap_children (int block, int err)
/* get exit data */
exit_code = process_exit_code (hPID);
if (werr)
fprintf (stderr, "make (e=%d): %s", exit_code,
map_windows32_error_to_string (exit_code));
/* the extra tests of exit_code are here to prevent
map_windows32_error_to_string from calling 'fatal',
which will then call reap_children again */
if (werr && exit_code > 0 && exit_code < WSABASEERR)
fprintf (stderr, "make (e=%d): %s", exit_code,
map_windows32_error_to_string (exit_code));
/* signal */
exit_sig = process_signal (hPID);