Accepting request 613679 from home:avindra:branches:Base:System

- Add patch 20, 21, 22 and 23 to bash-4.4-patches.tar.bz2
  * 20: In circumstances involving long-running scripts that create
    and reap many processes, it is possible for the hash table bash
    uses to store exit statuses from asynchronous processes to
    develop loops. This patch fixes the loop causes and adds code
    to detect any future loops.
  * 21: A SIGINT received inside a SIGINT trap handler can possibly
    cause the shell to loop.
  * 22: There are cases where a failing readline command (e.g.,
    delete-char at the end of a line) can cause a multi-character
    key sequence to `back up' and attempt to re-read some of the
    characters in the sequence.
  * 23: When sourcing a file from an interactive shell, setting the
    SIGINT handler to the default and typing ^C will cause the
    shell to exit.
- remove bash-4.4-wait-sigint-handler.patch (upstreamed)

OBS-URL: https://build.opensuse.org/request/show/613679
OBS-URL: https://build.opensuse.org/package/show/Base:System/bash?expand=0&rev=264
This commit is contained in:
Dr. Werner Fink 2018-06-06 08:34:03 +00:00 committed by Git OBS Bridge
parent 526b82607c
commit ced73c8702
4 changed files with 22 additions and 34 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:d86684f8611c66689730646c48392d47ce52c680da9b3269178778097fac57fc oid sha256:8c161f78c916668078676da505aad2756202cbfee895d714091bfdc5c836e1fd
size 10625 size 12693

View File

@ -1,29 +0,0 @@
Repeating self-calling of traps due the combination of a non-interactive
shell, a trap handler for SIGINT, an external process in the trap handler,
and a SIGINT within the trap after the external process runs.
---
jobs.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--- jobs.c
+++ jobs.c 2018-04-02 18:24:21.000000000 +0000
@@ -2662,7 +2662,17 @@ wait_for (pid)
wait_sigint_received = child_caught_sigint = 0;
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
- old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+ SigHandler *temp_sigint_handler;
+
+ temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+ if (temp_sigint_handler == wait_sigint_handler)
+ {
+#if defined (DEBUG)
+ internal_warning ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap);
+#endif
+ }
+ else
+ old_sigint_handler = temp_sigint_handler;
waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
set_signal_handler (SIGINT, old_sigint_handler);

View File

@ -3,6 +3,26 @@ Mon Jun 4 09:21:15 UTC 2018 - werner@suse.de
- In patch bash-4.4.dif avoud setgroups(2) but use initgroups(3) (boo#1095670) - In patch bash-4.4.dif avoud setgroups(2) but use initgroups(3) (boo#1095670)
-------------------------------------------------------------------
Sat Jun 2 17:17:13 UTC 2018 - avindra@opensuse.org
- Add patch 20, 21, 22 and 23 to bash-4.4-patches.tar.bz2
* 20: In circumstances involving long-running scripts that create
and reap many processes, it is possible for the hash table bash
uses to store exit statuses from asynchronous processes to
develop loops. This patch fixes the loop causes and adds code
to detect any future loops.
* 21: A SIGINT received inside a SIGINT trap handler can possibly
cause the shell to loop.
* 22: There are cases where a failing readline command (e.g.,
delete-char at the end of a line) can cause a multi-character
key sequence to `back up' and attempt to re-read some of the
characters in the sequence.
* 23: When sourcing a file from an interactive shell, setting the
SIGINT handler to the default and typing ^C will cause the
shell to exit.
- remove bash-4.4-wait-sigint-handler.patch (upstreamed)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Apr 18 10:49:26 UTC 2018 - werner@suse.de Wed Apr 18 10:49:26 UTC 2018 - werner@suse.de

View File

@ -83,8 +83,6 @@ Patch47: bash-4.3-perl522.patch
Patch48: bash-4.3-extra-import-func.patch Patch48: bash-4.3-extra-import-func.patch
# PATCH-EXTEND-SUSE Allow root to clean file system if filled up # PATCH-EXTEND-SUSE Allow root to clean file system if filled up
Patch49: bash-4.3-pathtemp.patch Patch49: bash-4.3-pathtemp.patch
# PATCH-FIX-UPSTREAM bnc#1086247
Patch50: bash-4.4-wait-sigint-handler.patch
%global _sysconfdir /etc %global _sysconfdir /etc
%global _incdir %{_includedir} %global _incdir %{_includedir}
%global _ldldir /%{_lib}/bash %global _ldldir /%{_lib}/bash
@ -226,7 +224,6 @@ done
%patch48 -b .eif %patch48 -b .eif
%endif %endif
%patch49 -p0 -b .pthtmp %patch49 -p0 -b .pthtmp
%patch50 -p0 -b .trap
%patch0 -p0 -b .0 %patch0 -p0 -b .0
# This has to be always the same version as included in the bash its self # This has to be always the same version as included in the bash its self
rl1=($(sed -rn '/RL_READLINE_VERSION/p' lib/readline/readline.h)) rl1=($(sed -rn '/RL_READLINE_VERSION/p' lib/readline/readline.h))