diff --git a/bash-4.1-array.dif b/bash-4.1-array.dif index 044dafb6..66c3cdda 100644 --- a/bash-4.1-array.dif +++ b/bash-4.1-array.dif @@ -1,21 +1,3 @@ -Andreas Schwab writes: - -> $ declare -A a=b; unset a -> *** glibc detected *** /bin/bash: free(): invalid pointer: 0x10091644 *** - -And the obvious patch: - ---- builtins/declare.def -+++ builtins/declare.def 2010-04-09 17:20:51.000000000 +0000 -@@ -512,7 +512,7 @@ declare_internal (list, local_var) - { - /* let bind_{array,assoc}_variable take care of this. */ - if (assoc_p (var)) -- bind_assoc_variable (var, name, "0", value, aflags); -+ bind_assoc_variable (var, name, savestring ("0"), value, aflags); - else - bind_array_variable (name, 0, value, aflags); - } Roman Rakus writes: > Repeated in the bash-4.0.38 and bash-4.1.7 by the script; > #!/bin/bash diff --git a/bash-4.1-patches.tar.bz2 b/bash-4.1-patches.tar.bz2 index e7eb2f89..62491b6e 100644 --- a/bash-4.1-patches.tar.bz2 +++ b/bash-4.1-patches.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c09d82089a275831e34dd2a885d50f733265d4929e62c0fce5a5ae623e8d8a0b -size 3633 +oid sha256:863d13c4739d3ce674f9d4f2d25e65eb1bd6dabe1e7d46be1b41ff053dbc9a1e +size 4268 diff --git a/bash-3.2-sigrestart.patch b/bash-4.1-sigrestart.patch similarity index 72% rename from bash-3.2-sigrestart.patch rename to bash-4.1-sigrestart.patch index 361968a4..2aca6ade 100644 --- a/bash-3.2-sigrestart.patch +++ b/bash-4.1-sigrestart.patch @@ -1,6 +1,6 @@ --- jobs.c -+++ jobs.c 2008-01-08 18:10:15.575513000 +0000 -@@ -2417,7 +2417,11 @@ wait_for (pid) ++++ jobs.c 2008-01-08 18:10:16.000000000 +0000 +@@ -2426,7 +2426,11 @@ wait_for (pid) act.sa_handler = SIG_DFL; sigemptyset (&act.sa_mask); sigemptyset (&oact.sa_mask); @@ -13,12 +13,11 @@ # endif queue_sigchld = 1; --- sig.c -+++ sig.c 2008-04-02 10:42:23.742406622 +0000 -@@ -654,6 +654,17 @@ set_signal_handler (sig, handler) - act.sa_flags |= SA_INTERRUPT; /* XXX */ - else - act.sa_flags |= SA_RESTART; /* XXX */ -+#else ++++ sig.c 2010-10-14 12:28:48.004425767 +0000 +@@ -658,6 +658,16 @@ set_signal_handler (sig, handler) + #else + if (sig == SIGCHLD) + act.sa_flags |= SA_RESTART; +# if !defined(MUST_REINSTALL_SIGHANDLERS) + if (sig != SIGALRM) + act.sa_flags |= SA_RESTART; /* XXX */ diff --git a/bash.changes b/bash.changes index dee04400..1b643c9a 100644 --- a/bash.changes +++ b/bash.changes @@ -1,7 +1,19 @@ +------------------------------------------------------------------- +Thu Oct 14 14:34:15 CEST 2010 - werner@suse.de + +- Update bash 4.1 to patch level 9 + * When declaring an associative array and implicitly assigning a + value to element "0", bash does not correctly allocate memory, + leading to a segmentation violation when that element or the + array itself is unset. + * An arriving SIGCHLD will interrupt `slow' system calls such as + write(2) to or read(2) from a terminal. This results in an + error message and truncated input or output. + ------------------------------------------------------------------- Fri Sep 3 20:55:30 UTC 2010 - cristian.rodriguez@opensuse.org -- builtin "man2html"generates html manaul with a timestamp +- builtin "man2html"generates html manual with a timestamp that causes the package to be published over and over again. ------------------------------------------------------------------- diff --git a/bash.spec b/bash.spec index 510e82bf..3a1b65e4 100644 --- a/bash.spec +++ b/bash.spec @@ -60,7 +60,7 @@ Patch9: bash-4.0-extended_quote.patch Patch10: bash-3.2-printf.patch Patch11: bash-4.0-loadables.dif Patch12: bash-4.1-completion.dif -Patch14: bash-3.2-sigrestart.patch +Patch14: bash-4.1-sigrestart.patch Patch15: bash-3.2-longjmp.dif Patch16: bash-4.0-setlocale.dif Patch17: bash-4.0-headers.dif