BASH PATCH REPORT
|
|
=================
|
|
|
|
Bash-Release: 5.0
|
|
Patch-ID: bash50-016
|
|
|
|
Bug-Reported-by: sunnycemetery@gmail.com
|
|
Bug-Reference-ID: <20190316041534.GB22884@midnight>
|
|
Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-03/msg00070.html
|
|
|
|
Bug-Description:
|
|
|
|
Bash waits too long to reap /dev/fd process substitutions used as redirections
|
|
with loops and group commands, which can lead to file descriptor exhaustion.
|
|
|
|
Patch (apply with `patch -p0'):
|
|
|
|
*** a/execute_cmd.c 2019-04-19 15:46:36.000000000 -0400
|
|
--- b/execute_cmd.c 2019-07-01 16:45:49.000000000 -0400
|
|
***************
|
|
*** 1104,1107 ****
|
|
--- 1085,1104 ----
|
|
discard_unwind_frame ("internal_fifos");
|
|
}
|
|
+ # if defined (HAVE_DEV_FD)
|
|
+ /* Reap process substitutions at the end of loops */
|
|
+ switch (command->type)
|
|
+ {
|
|
+ case cm_while:
|
|
+ case cm_until:
|
|
+ case cm_for:
|
|
+ case cm_group:
|
|
+ # if defined (ARITH_FOR_COMMAND)
|
|
+ case cm_arith_for:
|
|
+ # endif
|
|
+ reap_procsubs ();
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
+ # endif /* HAVE_DEV_FD */
|
|
#endif
|
|
|
|
|
|
*** a/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
|
--- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400
|
|
***************
|
|
*** 26,30 ****
|
|
looks for to find the patch level (for the sccs version string). */
|
|
|
|
! #define PATCHLEVEL 15
|
|
|
|
#endif /* _PATCHLEVEL_H_ */
|
|
--- 26,30 ----
|
|
looks for to find the patch level (for the sccs version string). */
|
|
|
|
! #define PATCHLEVEL 16
|
|
|
|
#endif /* _PATCHLEVEL_H_ */
|