From: Eli Zaretskii Date: Wed, 11 Jan 2017 18:43:41 +0000 (+0200) Subject: [SV 50021] Avoid infloop on MS-Windows with short scripts X-Git-Tag: 4.2.90~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a95cb30ab5eed851c6efafb5a871a6fa8860268b;p=thirdparty%2Fmake.git [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. --- diff --git a/job.c b/job.c index 81248971..194d2576 100644 --- a/job.c +++ b/job.c @@ -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);