[packages/bash] - add patches
arekm
arekm at pld-linux.org
Tue Apr 8 16:59:03 CEST 2014
commit 28d34d34e60edd20eae7e514f2c85be964bb96ea
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Tue Apr 8 16:59:00 2014 +0200
- add patches
bash43-001 | 58 +++++++++++++++++++
bash43-002 | 62 ++++++++++++++++++++
bash43-003 | 48 ++++++++++++++++
bash43-004 | 47 ++++++++++++++++
bash43-005 | 63 +++++++++++++++++++++
bash43-006 | 48 ++++++++++++++++
bash43-007 | 50 ++++++++++++++++
bash43-008 | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 564 insertions(+)
---
diff --git a/bash43-001 b/bash43-001
new file mode 100644
index 0000000..ea1c6b2
--- /dev/null
+++ b/bash43-001
@@ -0,0 +1,58 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-001
+
+Bug-Reported-by: NBaH <nbah at sfr.fr>
+Bug-Reference-ID: <ler0b5$iu9$1 at speranza.aioe.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html
+
+Bug-Description:
+
+A missing check for a valid option prevented `test -R' from working. There
+is another problem that causes bash to look up the wrong variable name when
+processing the argument to `test -R'.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500
+--- test.c 2014-02-28 21:22:44.000000000 -0500
+***************
+*** 647,652 ****
+
+ case 'R':
+! v = find_variable (arg);
+! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE);
+ }
+
+--- 647,652 ----
+
+ case 'R':
+! v = find_variable_noref (arg);
+! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE);
+ }
+
+***************
+*** 724,727 ****
+--- 724,728 ----
+ case 'u': case 'v': case 'w': case 'x': case 'z':
+ case 'G': case 'L': case 'O': case 'S': case 'N':
++ case 'R':
+ return (1);
+ }
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 0
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-002 b/bash43-002
new file mode 100644
index 0000000..735b7b8
--- /dev/null
+++ b/bash43-002
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-002
+
+Bug-Reported-by: Moe Tunes <moetunes42 at gmail.com>
+Bug-Reference-ID: <53103F49.3070100 at gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html
+
+Bug-Description:
+
+A change to save state while running the DEBUG trap caused pipelines to hang
+on systems which need process group synchronization while building pipelines.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500
+--- trap.c 2014-02-28 09:51:43.000000000 -0500
+***************
+*** 921,925 ****
+
+ #if defined (JOB_CONTROL)
+! save_pipeline (1); /* XXX only provides one save level */
+ #endif
+
+--- 921,926 ----
+
+ #if defined (JOB_CONTROL)
+! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+! save_pipeline (1); /* XXX only provides one save level */
+ #endif
+
+***************
+*** 941,945 ****
+
+ #if defined (JOB_CONTROL)
+! restore_pipeline (1);
+ #endif
+
+--- 942,947 ----
+
+ #if defined (JOB_CONTROL)
+! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
+! restore_pipeline (1);
+ #endif
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-003 b/bash43-003
new file mode 100644
index 0000000..0f32f41
--- /dev/null
+++ b/bash43-003
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-003
+
+Bug-Reported-by: Anatol Pomozov <anatol.pomozov at gmail.com>
+Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ at mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
+
+Bug-Description:
+
+When in callback mode, some readline commands can cause readline to seg
+fault by passing invalid contexts to callback functions.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400
+***************
+*** 745,749 ****
+
+ RL_CHECK_SIGNALS ();
+! if (r == 0) /* success! */
+ {
+ _rl_keyseq_chain_dispose ();
+--- 745,750 ----
+
+ RL_CHECK_SIGNALS ();
+! /* We only treat values < 0 specially to simulate recursion. */
+! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
+ {
+ _rl_keyseq_chain_dispose ();
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-004 b/bash43-004
new file mode 100644
index 0000000..010f04a
--- /dev/null
+++ b/bash43-004
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-004
+
+Bug-Reported-by: Daan van Rossum <daan at flash.uchicago.edu>
+Bug-Reference-ID: <20140307072523.GA14250 at flash.uchicago.edu>
+Bug-Reference-URL:
+
+Bug-Description:
+
+The `.' command in vi mode cannot undo multi-key commands beginning with
+`c', `d', and `y' (command plus motion specifier).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500
+***************
+*** 965,969 ****
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! rl_key_sequence_length == 1 && /* XXX */
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+--- 965,969 ----
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! _rl_dispatching_keymap == vi_movement_keymap &&
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-005 b/bash43-005
new file mode 100644
index 0000000..bcd4069
--- /dev/null
+++ b/bash43-005
@@ -0,0 +1,63 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-005
+
+Bug-Reported-by: David Sines <dave.gma at googlemail.com>
+Bug-Reference-ID: <CAO3BAa_CK_Rgkhdfzs+NJ4KFYdB9qW3pvXQK0xLCi6GMmDU8bw at mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html
+
+Bug-Description:
+
+When in Posix mode, bash did not correctly interpret the ANSI-C-style
+$'...' quoting mechanism when performing pattern substitution word
+expansions within double quotes.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500
+--- parse.y 2014-03-07 20:57:15.000000000 -0500
+***************
+*** 3399,3403 ****
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+--- 3399,3403 ----
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+*** ../bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500
+--- y.tab.c 2014-03-28 10:41:15.000000000 -0400
+***************
+*** 5711,5715 ****
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+--- 5711,5715 ----
+ unescaped double-quotes or single-quotes, if any, shall occur." */
+ /* This was changed in Austin Group Interp 221 */
+! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
+ continue;
+
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-006 b/bash43-006
new file mode 100644
index 0000000..24ff057
--- /dev/null
+++ b/bash43-006
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-006
+
+Bug-Reported-by: Eduardo A . Bustamante Lopez <dualbus at gmail.com>
+Bug-Reference-ID: <20140228170013.GA16015 at dualbus.me>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html
+
+Bug-Description:
+
+A shell that started with job control active but was not interactive left
+the terminal in the wrong process group when exiting, causing its parent
+shell to get a stop signal when it attempted to read from the terminal.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500
+--- jobs.c 2014-03-02 18:05:09.000000000 -0500
+***************
+*** 4375,4379 ****
+ end_job_control ()
+ {
+! if (interactive_shell) /* XXX - should it be interactive? */
+ {
+ terminate_stopped_jobs ();
+--- 4375,4379 ----
+ end_job_control ()
+ {
+! if (interactive_shell || job_control) /* XXX - should it be just job_control? */
+ {
+ terminate_stopped_jobs ();
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-007 b/bash43-007
new file mode 100644
index 0000000..0d62c9e
--- /dev/null
+++ b/bash43-007
@@ -0,0 +1,50 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-007
+
+Bug-Reported-by: geir.hauge at gmail.com
+Bug-Reference-ID: <20140318093650.B181C1C5B0B at gina.itea.ntnu.no>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html
+
+Bug-Description:
+
+Using compound assignments for associative arrays like
+
+assoc=( [x]= [y]=bar )
+
+left the value corresponding to the key `x' NULL. This caused subsequent
+lookups to interpret it as unset.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400
+--- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400
+***************
+*** 598,601 ****
+--- 598,606 ----
+ {
+ val = expand_assignment_string_to_string (val, 0);
++ if (val == 0)
++ {
++ val = (char *)xmalloc (1);
++ val[0] = '\0'; /* like do_assignment_internal */
++ }
+ free_val = 1;
+ }
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/bash43-008 b/bash43-008
new file mode 100644
index 0000000..0ae7c95
--- /dev/null
+++ b/bash43-008
@@ -0,0 +1,188 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.3
+Patch-ID: bash43-008
+
+Bug-Reported-by: Stephane Chazelas <stephane.chazelas at gmail.com>
+Bug-Reference-ID: <20140318135901.GB22158 at chaz.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html
+
+Bug-Description:
+
+Some extended glob patterns incorrectly matched filenames with a leading
+dot, regardless of the setting of the `dotglob' option.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400
+--- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400
+***************
+*** 211,214 ****
+--- 211,215 ----
+ case '!':
+ case '@':
++ case '?':
+ return (pat[1] == LPAREN);
+ default:
+*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500
+--- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400
+***************
+*** 180,202 ****
+ int flags;
+ {
+! char *pp, *pe, *t;
+! int n, r;
+
+ pp = pat + 2;
+! pe = pp + strlen (pp) - 1; /*(*/
+! if (*pe != ')')
+! return 0;
+! if ((t = strchr (pp, '|')) == 0) /* easy case first */
+ {
+ *pe = '\0';
+ r = skipname (pp, dname, flags); /*(*/
+ *pe = ')';
+ return r;
+ }
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
+ r = skipname (pp, dname, flags);
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+--- 180,215 ----
+ int flags;
+ {
+! char *pp, *pe, *t, *se;
+! int n, r, negate;
+
++ negate = *pat == '!';
+ pp = pat + 2;
+! se = pp + strlen (pp) - 1; /* end of string */
+! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */
+! /* we should check for invalid extglob pattern here */
+! /* if pe != se we have more of the pattern at the end of the extglob
+! pattern. Check the easy case first ( */
+! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0)
+ {
+ *pe = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags); /*(*/
++ #endif
+ *pe = ')';
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
++ #if defined (HANDLE_MULTIBYTE)
++ r = mbskipname (pp, dname, flags);
++ #else
+ r = skipname (pp, dname, flags);
++ #endif
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+***************
+*** 205,219 ****
+ } /*(*/
+
+! if (pp == pe) /* glob_patscan might find end of pattern */
+ return r;
+
+! *pe = '\0';
+! # if defined (HANDLE_MULTIBYTE)
+! r = mbskipname (pp, dname, flags); /*(*/
+! # else
+! r = skipname (pp, dname, flags); /*(*/
+! # endif
+! *pe = ')';
+! return r;
+ }
+ #endif
+--- 218,227 ----
+ } /*(*/
+
+! /* glob_patscan might find end of pattern */
+! if (pp == se)
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ }
+ #endif
+***************
+*** 278,289 ****
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n;
+! int r;
+
+ pp = pat + 2;
+! pe = pp + wcslen (pp) - 1; /*(*/
+! if (*pe != L')')
+! return 0;
+! if ((t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+--- 286,298 ----
+ {
+ #if EXTENDED_GLOB
+! wchar_t *pp, *pe, *t, n, *se;
+! int r, negate;
+
++ negate = *pat == L'!';
+ pp = pat + 2;
+! se = pp + wcslen (pp) - 1; /*(*/
+! pe = glob_patscan_wc (pp, se, 0);
+!
+! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+***************
+*** 292,295 ****
+--- 301,306 ----
+ return r;
+ }
++
++ /* check every subpattern */
+ while (t = glob_patscan_wc (pp, pe, '|'))
+ {
+***************
+*** 306,313 ****
+ return r;
+
+! *pe = L'\0';
+! r = wchkname (pp, dname); /*(*/
+! *pe = L')';
+! return r;
+ #else
+ return (wchkname (pat, dname));
+--- 317,322 ----
+ return r;
+
+! /* but if it doesn't then we didn't match a leading dot */
+! return 0;
+ #else
+ return (wchkname (pat, dname));
+*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500
+--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/bash.git/commitdiff/28d34d34e60edd20eae7e514f2c85be964bb96ea
More information about the pld-cvs-commit
mailing list