some more upstream patches
authorMike Frysinger <vapier@gentoo.org>
Sat, 15 Apr 2006 02:24:59 +0000 (02:24 -0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 15 Apr 2006 02:24:59 +0000 (02:24 -0000)
package/bash/bash31-015 [new file with mode: 0644]
package/bash/bash31-016 [new file with mode: 0644]
package/bash/bash31-017 [new file with mode: 0644]

diff --git a/package/bash/bash31-015 b/package/bash/bash31-015
new file mode 100644 (file)
index 0000000..3376a4f
--- /dev/null
@@ -0,0 +1,106 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-015
+
+Bug-Reported-by: Benoit Vila
+Bug-Reference-ID: <43FCA614.1090108@free.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html
+
+Bug-Description:
+
+A problem with the extended globbing code prevented dots from matching
+filenames when used in some extended matching patterns.
+
+Patch:
+
+*** bash-3.1/lib/glob/sm_loop.c        Sun Oct 16 21:21:04 2005
+--- bash-3.1/lib/glob/sm_loop.c        Mon Feb 27 17:18:43 2006
+***************
+*** 639,643 ****
+    CHAR *pnext;                       /* pointer to next sub-pattern */
+    CHAR *srest;                       /* pointer to rest of string */
+!   int m1, m2;
+  
+  #if DEBUG_MATCHING
+--- 638,642 ----
+    CHAR *pnext;                       /* pointer to next sub-pattern */
+    CHAR *srest;                       /* pointer to rest of string */
+!   int m1, m2, xflags;                /* xflags = flags passed to recursive matches */
+  
+  #if DEBUG_MATCHING
+***************
+*** 645,648 ****
+--- 644,648 ----
+  fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
+  fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
++ fprintf(stderr, "extmatch: flags = %d\n", flags);
+  #endif
+  
+***************
+*** 678,683 ****
+                multiple matches of the pattern. */
+             if (m1)
+!              m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
+!                    (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
+             if (m1 && m2)
+               return (0);
+--- 678,687 ----
+                multiple matches of the pattern. */
+             if (m1)
+!              {
+!                /* if srest > s, we are not at start of string */
+!                xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+!                m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
+!                      (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
+!              }
+             if (m1 && m2)
+               return (0);
+***************
+*** 705,710 ****
+         for ( ; srest <= se; srest++)
+           {
+             if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
+!                GMATCH (srest, se, prest, pe, flags) == 0)
+               return (0);
+           }
+--- 709,716 ----
+         for ( ; srest <= se; srest++)
+           {
++            /* if srest > s, we are not at start of string */
++            xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+             if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
+!                GMATCH (srest, se, prest, pe, xflags) == 0)
+               return (0);
+           }
+***************
+*** 727,731 ****
+               break;
+           }
+!        if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
+           return (0);
+       }
+--- 733,739 ----
+               break;
+           }
+!        /* if srest > s, we are not at start of string */
+!        xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+!        if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
+           return (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 14
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/bash31-016 b/package/bash/bash31-016
new file mode 100644 (file)
index 0000000..41cdeb0
--- /dev/null
@@ -0,0 +1,51 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-016
+
+Bug-Reported-by: Nikita Danilov <nikita@clusterfs.com>
+Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html
+
+Bug-Description:
+
+Bash will dump core when attempting to perform globbing in directories with
+very large numbers of files.
+
+Patch:
+
+*** bash-3.1/lib/glob/glob.c   Thu Mar 24 12:42:27 2005
+--- bash-3.1/lib/glob/glob.c   Fri Mar  3 16:54:12 2006
+***************
+*** 361,364 ****
+--- 361,365 ----
+  
+    firstmalloc = 0;
++   nalloca = 0;
+  
+    /* If PAT is empty, skip the loop, but return one (empty) filename. */
+***************
+*** 547,550 ****
+--- 551,556 ----
+             tmplink = lastlink;
+           }
++        else
++          tmplink = 0;
+         free (lastlink->name);
+         lastlink = lastlink->next;
+*** 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 15
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/bash31-017 b/package/bash/bash31-017
new file mode 100644 (file)
index 0000000..60e4acd
--- /dev/null
@@ -0,0 +1,131 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-017
+
+Bug-Reported-by: syphir@syphir.sytes.net
+Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net>
+Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831
+
+Bug-Description:
+
+Array expansion fails with an arithmetic syntax error when the subscript
+appears within double quotes.  For example: ${a["4"]}.
+
+Patch:
+
+*** bash-3.1/subst.c   Wed Apr 12 08:47:08 2006
+--- bash-3.1/subst.c   Wed Apr 12 08:49:02 2006
+***************
+*** 2576,2579 ****
+--- 2576,2586 ----
+  }
+  
++ char *
++ expand_arith_string (string, quoted)
++      char *string;
++ {
++   return (expand_string_if_necessary (string, quoted, expand_string));
++ }
++ 
+  #if defined (COND_COMMAND)
+  /* Just remove backslashes in STRING.  Returns a new string. */
+***************
+*** 5249,5253 ****
+      t = (char *)0;
+  
+!   temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
+    *e1p = evalexp (temp1, &expok);
+    free (temp1);
+--- 5256,5260 ----
+      t = (char *)0;
+  
+!   temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
+    *e1p = evalexp (temp1, &expok);
+    free (temp1);
+***************
+*** 5294,5298 ****
+        t++;
+        temp2 = savestring (t);
+!       temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
+        free (temp2);
+        t[-1] = ':';
+--- 5301,5305 ----
+        t++;
+        temp2 = savestring (t);
+!       temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+        free (temp2);
+        t[-1] = ':';
+***************
+*** 6436,6440 ****
+  
+         /* Expand variables found inside the expression. */
+!        temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
+         free (temp2);
+  
+--- 6443,6447 ----
+  
+         /* Expand variables found inside the expression. */
+!        temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+         free (temp2);
+  
+***************
+*** 6478,6482 ****
+  
+         /* Do initial variable expansion. */
+!       temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
+  
+        goto arithsub;
+--- 6485,6489 ----
+  
+         /* Do initial variable expansion. */
+!       temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
+  
+        goto arithsub;
+*** bash-3.1/subst.h   Sun Nov  7 15:12:28 2004
+--- bash-3.1/subst.h   Mon Mar 27 09:10:38 2006
+***************
+*** 152,155 ****
+--- 152,158 ----
+  extern char *expand_assignment_string_to_string __P((char *, int));
+  
++ /* Expand an arithmetic expression string */
++ extern char *expand_arith_string __P((char *, int));
++ 
+  /* De-quoted quoted characters in STRING. */
+  extern char *dequote_string __P((char *));
+*** ../bash-3.1-patched/arrayfunc.c    Mon Jul  4 20:25:58 2005
+--- arrayfunc.c        Mon Mar 27 09:10:47 2006
+***************
+*** 593,601 ****
+    strncpy (exp, s, len - 1);
+    exp[len - 1] = '\0';
+! #if 0
+!   t = expand_string_to_string (exp, 0);
+! #else 
+!   t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
+! #endif
+    this_command_name = (char *)NULL;
+    val = evalexp (t, &expok);
+--- 591,595 ----
+    strncpy (exp, s, len - 1);
+    exp[len - 1] = '\0';
+!   t = expand_arith_string (exp, 0);
+    this_command_name = (char *)NULL;
+    val = evalexp (t, &expok);
+*** 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 16
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 17
+  
+  #endif /* _PATCHLEVEL_H_ */