]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/bash/bash43-016
Merge branch 'next'
[ipfire-2.x.git] / src / patches / bash / bash43-016
diff --git a/src/patches/bash/bash43-016 b/src/patches/bash/bash43-016
deleted file mode 100644 (file)
index 882d593..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-016
-
-Bug-Reported-by:       Pierre Gaston <pierre.gaston@gmail.com>
-Bug-Reference-ID:      <CAPSX3sTCD61k1VQLJ5r-LWzEt+e7Xc-fxXmwn2u8EA5gJJej8Q@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html
-
-Bug-Description:
-
-An extended glob pattern containing a slash (`/') causes the globbing code
-to misinterpret it as a directory separator.
-
-Patch (apply with `patch -p0'):
-*** ../bash-4.3-patched/lib/glob/glob.c        2014-03-28 10:54:23.000000000 -0400
---- lib/glob/glob.c    2014-05-02 10:24:28.000000000 -0400
-***************
-*** 124,127 ****
---- 124,129 ----
-  extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
-  
-+ extern char *glob_dirscan __P((char *, int));
-+ 
-  /* Compile `glob_loop.c' for single-byte characters. */
-  #define CHAR unsigned char
-***************
-*** 188,191 ****
---- 190,196 ----
-    pe = glob_patscan (pp, se, 0);     /* end of extglob pattern (( */
-    /* we should check for invalid extglob pattern here */
-+   if (pe == 0)
-+     return 0;
-+ 
-    /* if pe != se we have more of the pattern at the end of the extglob
-       pattern. Check the easy case first ( */
-***************
-*** 1016,1020 ****
-    char **result;
-    unsigned int result_size;
-!   char *directory_name, *filename, *dname;
-    unsigned int directory_len;
-    int free_dirname;                  /* flag */
---- 1021,1025 ----
-    char **result;
-    unsigned int result_size;
-!   char *directory_name, *filename, *dname, *fn;
-    unsigned int directory_len;
-    int free_dirname;                  /* flag */
-***************
-*** 1032,1035 ****
---- 1037,1052 ----
-    /* Find the filename.  */
-    filename = strrchr (pathname, '/');
-+ #if defined (EXTENDED_GLOB)
-+   if (filename && extended_glob)
-+     {
-+       fn = glob_dirscan (pathname, '/');
-+ #if DEBUG_MATCHING
-+       if (fn != filename)
-+      fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename);
-+ #endif
-+       filename = fn;
-+     }
-+ #endif
-+ 
-    if (filename == NULL)
-      {
-*** ../bash-4.3-patched/lib/glob/gmisc.c       2014-03-28 10:54:23.000000000 -0400
---- lib/glob/gmisc.c   2014-05-02 09:35:57.000000000 -0400
-***************
-*** 43,46 ****
---- 43,48 ----
-  #define WRPAREN         L')'
-  
-+ extern char *glob_patscan __P((char *, char *, int));
-+ 
-  /* Return 1 of the first character of WSTRING could match the first
-     character of pattern WPAT.  Wide character version. */
-***************
-*** 376,377 ****
---- 378,410 ----
-    return matlen;
-  }
-+ 
-+ /* Skip characters in PAT and return the final occurrence of DIRSEP.  This
-+    is only called when extended_glob is set, so we have to skip over extglob
-+    patterns x(...) */
-+ char *
-+ glob_dirscan (pat, dirsep)
-+      char *pat;
-+      int dirsep;
-+ {
-+   char *p, *d, *pe, *se;
-+ 
-+   d = pe = se = 0;
-+   for (p = pat; p && *p; p++)
-+     {
-+       if (extglob_pattern_p (p))
-+      {
-+        if (se == 0)
-+          se = p + strlen (p) - 1;
-+        pe = glob_patscan (p + 2, se, 0);
-+        if (pe == 0)
-+          continue;
-+        else if (*pe == 0)
-+          break;
-+        p = pe - 1;   /* will do increment above */
-+        continue;
-+      }
-+       if (*p ==  dirsep)
-+      d = p;
-+     }
-+   return d;
-+ }
-
-*** ../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 15
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 16
-  
-  #endif /* _PATCHLEVEL_H_ */