aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2019-11-25 00:38:07 +0100
committerVasyl Gello <vasek.gello@gmail.com>2019-11-26 20:24:31 +0000
commit621fb366eddb890018e250f121b75246034defe6 (patch)
tree7636478186e4a632f5509f06824851e7e35d9c8f
parent0f26b8c14dfa59641bca34572f9c0767c8451363 (diff)
downloadandroid_external_bash-621fb366eddb890018e250f121b75246034defe6.tar.gz
android_external_bash-621fb366eddb890018e250f121b75246034defe6.tar.bz2
android_external_bash-621fb366eddb890018e250f121b75246034defe6.zip
Bash-4.3 patch 45
If a file open attempted as part of a redirection fails because it is interrupted by a signal, the shell needs to process any pending traps to allow the redirection to be canceled. Change-Id: I857ec38969bd8781737d3fdb9e5e2ac8c6208bdb
-rw-r--r--patchlevel.h2
-rw-r--r--redir.c6
2 files changed, 6 insertions, 2 deletions
diff --git a/patchlevel.h b/patchlevel.h
index 4b23f47..beea688 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 44
+#define PATCHLEVEL 45
#endif /* _PATCHLEVEL_H_ */
diff --git a/redir.c b/redir.c
index f38e0a2..d63e800 100644
--- a/redir.c
+++ b/redir.c
@@ -52,6 +52,7 @@
#include "flags.h"
#include "execute_cmd.h"
#include "redir.h"
+#include "trap.h"
#if defined (BUFFERED_INPUT)
# include "input.h"
@@ -671,7 +672,10 @@ redir_open (filename, flags, mode, ri)
fd = open (filename, flags, mode);
e = errno;
if (fd < 0 && e == EINTR)
- QUIT;
+ {
+ QUIT;
+ run_pending_traps ();
+ }
errno = e;
}
while (fd < 0 && errno == EINTR);