diff options
| -rw-r--r-- | package/bash/bash31-001 | 104 | ||||
| -rw-r--r-- | package/bash/bash31-002 | 239 | ||||
| -rw-r--r-- | package/bash/bash31-003 | 47 | ||||
| -rw-r--r-- | package/bash/bash31-004 | 48 | ||||
| -rw-r--r-- | package/bash/bash31-005 | 54 | ||||
| -rw-r--r-- | package/bash/bash31-006 | 58 | ||||
| -rw-r--r-- | package/bash/bash31-007 | 121 | ||||
| -rw-r--r-- | package/bash/bash31-008 | 51 | ||||
| -rw-r--r-- | package/bash/bash31-009 | 66 | ||||
| -rw-r--r-- | package/bash/bash31-010 | 164 | ||||
| -rw-r--r-- | package/bash/bash31-011 | 47 | 
11 files changed, 999 insertions, 0 deletions
| diff --git a/package/bash/bash31-001 b/package/bash/bash31-001 new file mode 100644 index 000000000..2d31930b0 --- /dev/null +++ b/package/bash/bash31-001 @@ -0,0 +1,104 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-001 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html + +Bug-Description: + +There are parsing problems with compound assignments in several contexts, +including as arguments to builtins like `local', `eval', and `let', and +as multiple assignments in a single command. + +Patch: + +*** bash-3.1/parse.y	Fri Nov 11 23:14:18 2005 +--- bash-3.1/parse.y	Fri Dec 16 20:43:07 2005 +*************** +*** 3696,3700 **** +        b = builtin_address_internal (token, 0); +        if (b && (b->flags & ASSIGNMENT_BUILTIN)) +!         parser_state |= PST_ASSIGNOK; +      } +   +--- 3696,3702 ---- +        b = builtin_address_internal (token, 0); +        if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! 	parser_state |= PST_ASSIGNOK; +!       else if (STREQ (token, "eval") || STREQ (token, "let")) +! 	parser_state |= PST_ASSIGNOK; +      } +   +*************** +*** 4687,4691 **** +  { +    WORD_LIST *wl, *rl; +!   int tok, orig_line_number, orig_token_size; +    char *saved_token, *ret; +   +--- 4689,4693 ---- +  { +    WORD_LIST *wl, *rl; +!   int tok, orig_line_number, orig_token_size, orig_last_token, assignok; +    char *saved_token, *ret; +   +*************** +*** 4693,4696 **** +--- 4695,4699 ---- +    orig_token_size = token_buffer_size; +    orig_line_number = line_number; ++   orig_last_token = last_read_token; +   +    last_read_token = WORD;	/* WORD to allow reserved words here */ +*************** +*** 4699,4702 **** +--- 4702,4707 ---- +    token_buffer_size = 0; +   ++   assignok = parser_state&PST_ASSIGNOK;		/* XXX */ ++  +    wl = (WORD_LIST *)NULL;	/* ( */ +    parser_state |= PST_COMPASSIGN; +*************** +*** 4741,4745 **** +      } +   +!   last_read_token = WORD; +    if (wl) +      { +--- 4746,4750 ---- +      } +   +!   last_read_token = orig_last_token;		/* XXX - was WORD? */ +    if (wl) +      { +*************** +*** 4753,4756 **** +--- 4758,4765 ---- +    if (retlenp) +      *retlenp = (ret && *ret) ? strlen (ret) : 0; ++  ++   if (assignok) ++     parser_state |= PST_ASSIGNOK; ++  +    return ret; +  } +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-002 b/package/bash/bash31-002 new file mode 100644 index 000000000..73ed023aa --- /dev/null +++ b/package/bash/bash31-002 @@ -0,0 +1,239 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation:  It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** bash-3.1/doc/bash.1	Wed Oct 12 11:40:52 2005 +--- bash-3.1/doc/bash.1	Wed Dec 28 19:58:54 2005 +*************** +*** 7,16 **** +  .\"	chet@po.cwru.edu +  .\" +! .\"	Last Change: Sat Aug 27 13:28:44 EDT 2005 +  .\" +  .\" bash_builtins, strip all but Built-Ins section +  .if \n(zZ=1 .ig zZ +  .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" +  .\" +  .\" There's some problem with having a `@' +--- 7,16 ---- +  .\"	chet@po.cwru.edu +  .\" +! .\"	Last Change: Wed Dec 28 19:58:45 EST 2005 +  .\" +  .\" bash_builtins, strip all but Built-Ins section +  .if \n(zZ=1 .ig zZ +  .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" +  .\" +  .\" There's some problem with having a `@' +*************** +*** 678,683 **** +  is enabled, the match is performed without regard to the case +  of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. +  Any part of the pattern may be quoted to force it to be matched as a +  string. +--- 678,683 ---- +  is enabled, the match is performed without regard to the case +  of alphabetic characters. +! The return value is 0 if the string matches (\fB==\fP) or does not match +! (\fB!=\fP) the pattern, and 1 otherwise. +  Any part of the pattern may be quoted to force it to be matched as a +  string. +*************** +*** 808,811 **** +--- 808,817 ---- +  .B Pathname Expansion +  below). ++ The \fIword\fP is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, process substitution and quote removal. ++ Each \fIpattern\fP examined is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, and process substitution. +  If the shell option +  .B nocasematch +*************** +*** 8485,8489 **** +  none are found. +  .TP +! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] +  Provides control over the resources available to the shell and to +  processes started by it, on systems that allow such control. +--- 8485,8489 ---- +  none are found. +  .TP +! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] +  Provides control over the resources available to the shell and to +  processes started by it, on systems that allow such control. +*************** +*** 8524,8527 **** +--- 8524,8530 ---- +  The maximum size of files created by the shell +  .TP ++ .B \-i ++ The maximum number of pending signals ++ .TP +  .B \-l +  The maximum size that may be locked into memory +*************** +*** 8537,8540 **** +--- 8540,8546 ---- +  The pipe size in 512-byte blocks (this may not be set) +  .TP ++ .B \-q ++ The maximum number of bytes in POSIX message queues ++ .TP +  .B \-s +  The maximum stack size +*************** +*** 8548,8551 **** +--- 8554,8560 ---- +  .B \-v +  The maximum amount of virtual memory available to the shell ++ .TP ++ .B \-x ++ The maximum number of file locks +  .PD +  .PP +*** bash-3.1/doc/bashref.texi	Mon Oct  3 15:07:21 2005 +--- bash-3.1/doc/bashref.texi	Fri Dec 30 10:50:39 2005 +*************** +*** 962,967 **** +  is enabled, the match is performed without regard to the case +  of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. +  Any part of the pattern may be quoted to force it to be matched as a +  string. +--- 962,967 ---- +  is enabled, the match is performed without regard to the case +  of alphabetic characters. +! The return value is 0 if the string matches (@samp{==}) or does not +! match (@samp{!=})the pattern, and 1 otherwise. +  Any part of the pattern may be quoted to force it to be matched as a +  string. +*************** +*** 2599,2603 **** +  or inconvenient to obtain with separate utilities. +   +! This section briefly the builtins which Bash inherits from +  the Bourne Shell, as well as the builtin commands which are unique +  to or have been extended in Bash. +--- 2597,2601 ---- +  or inconvenient to obtain with separate utilities. +   +! This section briefly describes the builtins which Bash inherits from +  the Bourne Shell, as well as the builtin commands which are unique +  to or have been extended in Bash. +*************** +*** 3834,3838 **** +  @btindex ulimit +  @example +! ulimit [-acdflmnpstuvSH] [@var{limit}] +  @end example +  @code{ulimit} provides control over the resources available to processes +--- 3834,3838 ---- +  @btindex ulimit +  @example +! ulimit [-acdfilmnpqstuvxSH] [@var{limit}] +  @end example +  @code{ulimit} provides control over the resources available to processes +*************** +*** 3858,3861 **** +--- 3858,3864 ---- +  The maximum size of files created by the shell. +   ++ @item -i ++ The maximum number of pending signals. ++  +  @item -l +  The maximum size that may be locked into memory. +*************** +*** 3870,3873 **** +--- 3873,3879 ---- +  The pipe buffer size. +   ++ @item -q ++ The maximum number of bytes in POSIX message queues. ++  +  @item -s +  The maximum stack size. +*************** +*** 3882,3885 **** +--- 3888,3894 ---- +  The maximum amount of virtual memory available to the process. +   ++ @item -x ++ The maximum number of file locks. ++  +  @end table +   +*************** +*** 4090,4095 **** +   +  @item -x +! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP +! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands +  and their arguments or associated word lists after they are +  expanded and before they are executed.  The value of the @env{PS4} +--- 4103,4108 ---- +   +  @item -x +! Print a trace of simple commands, @code{for} commands, @code{case} +! commands, @code{select} commands, and arithmetic @code{for} commands +  and their arguments or associated word lists after they are +  expanded and before they are executed.  The value of the @env{PS4} +*** bash-3.1/doc/version.texi	Tue Sep 20 14:52:56 2005 +--- bash-3.1/doc/version.texi	Fri Dec 30 10:50:58 2005 +*************** +*** 3,10 **** +  @end ignore +   +! @set LASTCHANGE Mon Sep  5 11:47:04 EDT 2005 +   +! @set EDITION 3.1-beta1 +! @set VERSION 3.1-beta1 +! @set UPDATED 5 September 2005 +! @set UPDATED-MONTH September 2005 +--- 3,10 ---- +  @end ignore +   +! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 +   +! @set EDITION 3.1 +! @set VERSION 3.1 +! @set UPDATED 30 December 2005 +! @set UPDATED-MONTH December 2005 +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-003 b/package/bash/bash31-003 new file mode 100644 index 000000000..603c1dce2 --- /dev/null +++ b/package/bash/bash31-003 @@ -0,0 +1,47 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-003 + +Bug-Reported-by: Adam Buraczewski <adamb@nor.pl> +Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html + +Bug-Description: + +A missing #define guard causes bash to not compile when readline is not +configured in, either as the result of explicit disabling or when the +`--enable-minimal-config' option is given to configure. + +Patch: + +*** bash-3.1/variables.c	Sat Nov 12 21:22:37 2005 +--- bash-3.1/variables.c	Mon Dec 26 13:34:03 2005 +*************** +*** 861,867 **** +--- 863,871 ---- +    char val[INT_STRLEN_BOUND(int) + 1], *v; +   ++ #if defined (READLINE) +    /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ +    if (winsize_assignment) +      return; ++ #endif +   +    v = inttostr (lines, val, sizeof (val)); +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-004 b/package/bash/bash31-004 new file mode 100644 index 000000000..e378762a2 --- /dev/null +++ b/package/bash/bash31-004 @@ -0,0 +1,48 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-004 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html + +Bug-Description: + +A local array variable declared at function scope that shadows a variable +of the same name declared in a previous scope did not create a separate +variable instance, but used the previous one. + +Patch: + +*** bash-3.1/subst.c	Mon Oct 24 09:51:13 2005 +--- bash-3.1/subst.c	Fri Dec 30 12:11:53 2005 +*************** +*** 2188,2192 **** +      { +        v = find_variable (name); +!       if (v == 0 || array_p (v) == 0) +          v = make_local_array_variable (name); +        v = assign_array_var_from_string (v, value, flags); +--- 2188,2192 ---- +      { +        v = find_variable (name); +!       if (v == 0 || array_p (v) == 0 || v->context != variable_context) +          v = make_local_array_variable (name); +        v = assign_array_var_from_string (v, value, flags); +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-005 b/package/bash/bash31-005 new file mode 100644 index 000000000..9a451045c --- /dev/null +++ b/package/bash/bash31-005 @@ -0,0 +1,54 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-005 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When tilde expansion fails, POSIX leaves it unspecified whether or not the +word undergoes the additional word expansions.  Bash-3.1 as distributed +skipped the rest of the expansions; this patch restores the bash-3.0 behavior. + +This means that something like +	USER=ratbert +	echo ~$USER + +will echo `~ratbert' rather than `~$USER'. + +Patch: + +*** bash-3.1/subst.c	Mon Oct 24 09:51:13 2005 +--- bash-3.1/subst.c	Fri Dec 30 12:11:53 2005 +*************** +*** 6796,6799 **** +--- 6823,6832 ---- +  	    { +  	      temp1 = bash_tilde_expand (temp, tflag); ++ 	      if  (temp1 && *temp1 == '~' && STREQ (temp, temp1)) ++ 		{ ++ 		  FREE (temp); ++ 		  FREE (temp1); ++ 		  goto add_character;		/* tilde expansion failed */ ++ 		} +  	      free (temp); +  	      temp = temp1; +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-006 b/package/bash/bash31-006 new file mode 100644 index 000000000..bcfa4d062 --- /dev/null +++ b/package/bash/bash31-006 @@ -0,0 +1,58 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-006 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html + +Bug-Description: + +Under some circumstances, Bash can use an incorrect setting for the flag +that indicates whether or not the terminal can auto-wrap, resulting in line- +wrapping errors. + +Patch: + +*** bash-3.1/lib/readline/terminal.c	Sat Nov 12 20:46:54 2005 +--- bash-3.1/lib/readline/terminal.c	Tue Jan 31 10:57:54 2006 +*************** +*** 123,127 **** +   +  /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap; +   +  /* Non-zero means that this terminal has a meta key. */ +--- 126,130 ---- +   +  /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap = -1; +   +  /* Non-zero means that this terminal has a meta key. */ +*************** +*** 275,278 **** +--- 278,284 ---- +       int rows, cols; +  { ++   if (_rl_term_autowrap == -1) ++     _rl_init_terminal_io (rl_terminal_name); ++  +    if (rows > 0) +      _rl_screenheight = rows; +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-007 b/package/bash/bash31-007 new file mode 100644 index 000000000..2db34bd15 --- /dev/null +++ b/package/bash/bash31-007 @@ -0,0 +1,121 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-007 + +Bug-Reported-by: Tim Waugh <twaugh@redhat.com>, Laird Breyer <laird@lbreyer.com> +Bug-Reference-ID: <20060105174434.GY16000@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html +		   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695 + +Bug-Description: + +When the number of saved jobs exceeds the initial size of the jobs array +(4096 slots), the array must be compacted and reallocated.  An error in +the code to do that could cause a segmentation fault. + +Patch: + +*** bash-3.1/jobs.c	Fri Nov 11 23:13:27 2005 +--- bash-3.1/jobs.c	Wed Feb  1 13:55:38 2006 +*************** +*** 845,851 **** +  { +    sigset_t set, oset; +!   int nsize, i, j; +    JOB **nlist; +   +    nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); +    nsize *= JOB_SLOTS; +--- 888,895 ---- +  { +    sigset_t set, oset; +!   int nsize, i, j, ncur, nprev; +    JOB **nlist; +   ++   ncur = nprev = NO_JOB; +    nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); +    nsize *= JOB_SLOTS; +*************** +*** 855,869 **** +   +    BLOCK_CHILD (set, oset); +!   nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); +    for (i = j = 0; i < js.j_jobslots; i++) +      if (jobs[i]) +!       nlist[j++] = jobs[i]; +   +    js.j_firstj = 0; +!   js.j_lastj = (j > 0) ? j - 1: 0; +    js.j_jobslots = nsize; +   +!   free (jobs); +!   jobs = nlist; +   +    UNBLOCK_CHILD (oset); +--- 899,947 ---- +   +    BLOCK_CHILD (set, oset); +!   nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); +!  +    for (i = j = 0; i < js.j_jobslots; i++) +      if (jobs[i]) +!       { +! 	if (i == js.j_current) +! 	  ncur = j; +! 	if (i == js.j_previous) +! 	  nprev = j; +! 	nlist[j++] = jobs[i]; +!       } +!  +! #if defined (DEBUG) +!   itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); +!   itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); +!   itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); +! #endif +   +    js.j_firstj = 0; +!   js.j_lastj = (j > 0) ? j - 1 : 0; +!   js.j_njobs = j; +    js.j_jobslots = nsize; +   +!   /* Zero out remaining slots in new jobs list */ +!   for ( ; j < nsize; j++) +!     nlist[j] = (JOB *)NULL; +!  +!   if (jobs != nlist) +!     { +!       free (jobs); +!       jobs = nlist; +!     } +!  +!   if (ncur != NO_JOB) +!     js.j_current = ncur; +!   if (nprev != NO_JOB) +!     js.j_previous = nprev; +!  +!   /* Need to reset these */ +!   if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) +!     reset_current (); +!  +! #ifdef DEBUG +!   itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); +! #endif +   +    UNBLOCK_CHILD (oset); +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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/package/bash/bash31-008 b/package/bash/bash31-008 new file mode 100644 index 000000000..5280a9f1e --- /dev/null +++ b/package/bash/bash31-008 @@ -0,0 +1,51 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-008 + +Bug-Reported-by: Ingemar Nilsson <init@kth.se> +Bug-Reference-ID: <43C38D35.7020404@kth.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html + +Bug-Description: + +In some cases, bash inappropriately allows SIGINT from the terminal to +reach background processes. + +Patch: + +*** bash-3.1/jobs.c	Fri Nov 11 23:13:27 2005 +--- bash-3.1/jobs.c	Wed Feb  1 13:55:38 2006 +*************** +*** 2199,2203 **** +    wait_sigint_received = 0; +    if (job_control == 0) +!     old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +   +    termination_state = last_command_exit_value; +--- 2298,2306 ---- +    wait_sigint_received = 0; +    if (job_control == 0) +!     { +!       old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +!       if (old_sigint_handler == SIG_IGN) +! 	set_signal_handler (SIGINT, old_sigint_handler); +!     } +   +    termination_state = last_command_exit_value; +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 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_ */ diff --git a/package/bash/bash31-009 b/package/bash/bash31-009 new file mode 100644 index 000000000..62f456fff --- /dev/null +++ b/package/bash/bash31-009 @@ -0,0 +1,66 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com> +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly.  This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** bash-3.1/jobs.c	Fri Nov 11 23:13:27 2005 +--- bash-3.1/jobs.c	Wed Feb  1 13:55:38 2006 +*************** +*** 620,625 **** +  	   * the parent gives it away. +  	   * +  	   */ +! 	  if (job_control && newjob->pgrp) +  	    give_terminal_to (newjob->pgrp, 0); +  	} +--- 634,642 ---- +  	   * the parent gives it away. +  	   * ++ 	   * Don't give the terminal away if this shell is an asynchronous ++ 	   * subshell. ++ 	   * +  	   */ +! 	  if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) +  	    give_terminal_to (newjob->pgrp, 0); +  	} +*************** +*** 1656,1660 **** +  	     shell's process group (we could be in the middle of a +  	     pipeline, for example). */ +! 	  if (async_p == 0 && pipeline_pgrp != shell_pgrp) +  	    give_terminal_to (pipeline_pgrp, 0); +   +--- 1743,1747 ---- +  	     shell's process group (we could be in the middle of a +  	     pipeline, for example). */ +! 	  if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) +  	    give_terminal_to (pipeline_pgrp, 0); +   +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 26,30 **** +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 8 +   +  #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 9 +   +  #endif /* _PATCHLEVEL_H_ */ diff --git a/package/bash/bash31-010 b/package/bash/bash31-010 new file mode 100644 index 000000000..19277a88f --- /dev/null +++ b/package/bash/bash31-010 @@ -0,0 +1,164 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-010 + +Bug-Reported-by: vw@vonwolff.de +Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html + +Bug-Description: + +There is a difference in behavior between bash-3.0 and bash-3.1 involving +parsing of single- and double-quoted strings occurring in old-style +command substitution.  The difference has to do with how backslashes are +processed.  This patch restores a measure of backwards compatibility while +the question of POSIX conformance and ultimately correct behavior is discussed. + +THIS IS AN UPDATED PATCH.  USE THIS COMMAND TO REVERSE THE EFFECTS OF +THE ORIGINAL PATCH.  THE CURRENT DIRECTORY MUST BE THE BASH-3.1 SOURCE +DIRECTORY. + +patch -p0 -R < bash31-010.orig + +Then apply this patch as usual. + +Patch: + +*** bash-3.1/parse.y	Fri Nov 11 23:14:18 2005 +--- bash-3.1/parse.y	Thu Feb 23 08:21:12 2006 +*************** +*** 2716,2721 **** +--- 2723,2729 ---- +  #define P_ALLOWESC	0x02 +  #define P_DQUOTE	0x04 +  #define P_COMMAND	0x08	/* parsing a command, so look for comments */ ++ #define P_BACKQUOTE	0x10	/* parsing a backquoted command substitution */ +   +  static char matched_pair_error; +  static char * +*************** +*** 2725,2736 **** +       int *lenp, flags; +  { +    int count, ch, was_dollar, in_comment, check_comment; +!   int pass_next_character, nestlen, ttranslen, start_lineno; +    char *ret, *nestret, *ttrans; +    int retind, retsize, rflags; +   +    count = 1; +!   pass_next_character = was_dollar = in_comment = 0; +    check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; +   +    /* RFLAGS is the set of flags we want to pass to recursive calls. */ +--- 2733,2744 ---- +       int *lenp, flags; +  { +    int count, ch, was_dollar, in_comment, check_comment; +!   int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; +    char *ret, *nestret, *ttrans; +    int retind, retsize, rflags; +   +    count = 1; +!   pass_next_character = backq_backslash = was_dollar = in_comment = 0; +    check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; +   +    /* RFLAGS is the set of flags we want to pass to recursive calls. */ +*************** +*** 2742,2752 **** +    start_lineno = line_number; +    while (count) +      { +! #if 0 +!       ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0); +! #else +!       ch = shell_getc (qc != '\'' && pass_next_character == 0); +! #endif +        if (ch == EOF) +  	{ +  	  free (ret); +--- 2750,2757 ---- +    start_lineno = line_number; +    while (count) +      { +!       ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0); +!  +        if (ch == EOF) +  	{ +  	  free (ret); +*************** +*** 2771,2779 **** +  	  continue; +  	} +        /* Not exactly right yet */ +!       else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1]))) +  	in_comment = 1; +   +        if (pass_next_character)		/* last char was backslash */ +  	{ +  	  pass_next_character = 0; +--- 2776,2791 ---- +  	  continue; +  	} +        /* Not exactly right yet */ +!       else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) +  	in_comment = 1; +   ++       /* last char was backslash inside backquoted command substitution */ ++       if (backq_backslash) ++ 	{ ++ 	  backq_backslash = 0; ++ 	  /* Placeholder for adding special characters */ ++ 	} ++  +        if (pass_next_character)		/* last char was backslash */ +  	{ +  	  pass_next_character = 0; +*************** +*** 2814,2819 **** +--- 2824,2831 ---- +  	{ +  	  if MBTEST((flags & P_ALLOWESC) && ch == '\\') +  	    pass_next_character++; ++ 	  else if MBTEST((flags & P_BACKQUOTE) && ch == '\\') ++ 	    backq_backslash++; +  	  continue; +  	} +   +*************** +*** 2898,2904 **** +  	} +        else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) +  	{ +! 	  nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); +  	  goto add_nestret; +  	} +        else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))	/* ) } ] */ +--- 2910,2920 ---- +  	} +        else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) +  	{ +! 	  /* Add P_BACKQUOTE so backslash quotes the next character and +! 	     shell_getc does the right thing with \<newline>.  We do this for +! 	     a measure  of backwards compatibility -- it's not strictly the +! 	     right POSIX thing. */ +! 	  nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); +  	  goto add_nestret; +  	} +        else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))	/* ) } ] */ +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 26,30 **** +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 9 +   +  #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 10 +   +  #endif /* _PATCHLEVEL_H_ */ diff --git a/package/bash/bash31-011 b/package/bash/bash31-011 new file mode 100644 index 000000000..d37fdbcf1 --- /dev/null +++ b/package/bash/bash31-011 @@ -0,0 +1,47 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-011 + +Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com> +Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html + +Bug-Description: + +A change in bash-3.1 caused the single quotes to be stripped from ANSI-C +quoting inside double-quoted command substitutions. + +Patch: + +*** bash-3.1/parse.y	Fri Nov 11 23:14:18 2005 +--- bash-3.1/parse.y	Wed Jan 25 14:55:18 2006 +*************** +*** 2908,2912 **** +  	    count--; +  	  if (ch == '(')		/* ) */ +! 	    nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); +  	  else if (ch == '{')		/* } */ +  	    nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +--- 2914,2918 ---- +  	    count--; +  	  if (ch == '(')		/* ) */ +! 	    nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); +  	  else if (ch == '{')		/* } */ +  	    nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +*** bash-3.1/patchlevel.h	Wed Jul 20 13:58:20 2005 +--- bash-3.1/patchlevel.h	Wed Dec  7 13:48:42 2005 +*************** +*** 26,30 **** +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 10 +   +  #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 11 +   +  #endif /* _PATCHLEVEL_H_ */ | 
