| From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-016 |
| |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| |
| 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'): |
| |
| *** ../bash-5.0-patched/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 |
| |
| |
| *** ../bash-5.0/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_ */ |