From 621fb366eddb890018e250f121b75246034defe6 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Mon, 25 Nov 2019 00:38:07 +0100 Subject: 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 --- patchlevel.h | 2 +- redir.c | 6 +++++- 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); -- cgit v1.2.3