54 lines
1.4 KiB
Diff
54 lines
1.4 KiB
Diff
From 6c6454cb18d7cd30b3b26d5ba6479431e599f3ed Mon Sep 17 00:00:00 2001
|
|
From: Chet Ramey <chet.ramey@case.edu>
|
|
Date: Fri, 7 Feb 2020 15:20:38 -0500
|
|
Subject: [PATCH] Bash-5.0 patch 16: bash waits too long to reap /dev/fd
|
|
process substitutions with loops and group commands
|
|
|
|
---
|
|
execute_cmd.c | 16 ++++++++++++++++
|
|
patchlevel.h | 2 +-
|
|
2 files changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/execute_cmd.c b/execute_cmd.c
|
|
index f1d74bfe..3864986d 100644
|
|
--- a/execute_cmd.c
|
|
+++ b/execute_cmd.c
|
|
@@ -1103,6 +1103,22 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
|
|
free ((void *)ofifo_list);
|
|
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
|
|
|
|
/* Invert the return value if we have to */
|
|
diff --git a/patchlevel.h b/patchlevel.h
|
|
index 6e9ed3fc..9074f4dd 100644
|
|
--- 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 15
|
|
+#define PATCHLEVEL 16
|
|
|
|
#endif /* _PATCHLEVEL_H_ */
|
|
--
|
|
2.25.1
|
|
|