BASH PATCH REPORT ================= Bash-Release: 4.2 Patch-ID: bash42-026 Bug-Reported-by: Greg Wooledge Bug-Reference-ID: <20120425180443.GO22241@eeg.ccf.org> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html Bug-Description: The `lastpipe' option does not behave correctly on machines where the open file limit is less than 256. Patch (apply with `patch -p0'): --- a/execute_cmd.c +++ b/execute_cmd.c @@ -2209,7 +2209,7 @@ execute_pipeline (command, asynchronous, #endif asynchronous == 0 && pipe_out == NO_PIPE && prev > 0) { - lstdin = move_to_high_fd (0, 0, 255); + lstdin = move_to_high_fd (0, 1, -1); if (lstdin > 0) { do_piping (prev, pipe_out); @@ -2255,7 +2255,9 @@ execute_pipeline (command, asynchronous, unfreeze_jobs_list (); } +#if defined (JOB_CONTROL) discard_unwind_frame ("lastpipe-exec"); +#endif return (exec_result); } --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 25 +#define PATCHLEVEL 26 #endif /* _PATCHLEVEL_H_ */