components/bash/patches/bash43-016.patch
author Sean Wilcox <sean.wilcox@oracle.com>
Tue, 08 Nov 2016 11:16:49 -0700
changeset 7262 19860fd7b64f
parent 5518 c47fe0edc204
permissions -rw-r--r--
24692363 restart of nova-compute went to maintenance
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5518
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
			     BASH PATCH REPORT
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
			     =================
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
Bash-Release:	4.3
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
Patch-ID:	bash43-016
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
Bug-Reported-by:	Pierre Gaston <[email protected]>
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
Bug-Reference-ID:	<CAPSX3sTCD61k1VQLJ5r-LWzEt+e7Xc-fxXmwn2u8EA5gJJej8Q@mail.gmail.com>
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
Bug-Description:
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
An extended glob pattern containing a slash (`/') causes the globbing code
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
to misinterpret it as a directory separator.
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
Patch (apply with `patch -p0'):
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
*** ../bash-4.3-patched/lib/glob/glob.c	2014-03-28 10:54:23.000000000 -0400
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
--- lib/glob/glob.c	2014-05-02 10:24:28.000000000 -0400
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
*** 124,127 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
--- 124,129 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
  extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
+ extern char *glob_dirscan __P((char *, int));
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
  /* Compile `glob_loop.c' for single-byte characters. */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
  #define CHAR	unsigned char
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
*** 188,191 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
--- 190,196 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
    pe = glob_patscan (pp, se, 0);	/* end of extglob pattern (( */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
    /* we should check for invalid extglob pattern here */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
+   if (pe == 0)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
+     return 0;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
    /* if pe != se we have more of the pattern at the end of the extglob
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
       pattern. Check the easy case first ( */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
*** 1016,1020 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
    char **result;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
    unsigned int result_size;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
!   char *directory_name, *filename, *dname;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
    unsigned int directory_len;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
    int free_dirname;			/* flag */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
--- 1021,1025 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
    char **result;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
    unsigned int result_size;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
!   char *directory_name, *filename, *dname, *fn;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
    unsigned int directory_len;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
    int free_dirname;			/* flag */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
*** 1032,1035 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
--- 1037,1052 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
    /* Find the filename.  */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
    filename = strrchr (pathname, '/');
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
+ #if defined (EXTENDED_GLOB)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
+   if (filename && extended_glob)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
+     {
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
+       fn = glob_dirscan (pathname, '/');
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
+ #if DEBUG_MATCHING
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
+       if (fn != filename)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
+ 	fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename);
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
+ #endif
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
+       filename = fn;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
+     }
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
+ #endif
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
    if (filename == NULL)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
      {
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
*** ../bash-4.3-patched/lib/glob/gmisc.c	2014-03-28 10:54:23.000000000 -0400
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
--- lib/glob/gmisc.c	2014-05-02 09:35:57.000000000 -0400
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
*** 43,46 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
--- 43,48 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
  #define WRPAREN         L')'
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
+ extern char *glob_patscan __P((char *, char *, int));
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
  /* Return 1 of the first character of WSTRING could match the first
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
     character of pattern WPAT.  Wide character version. */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
*** 376,377 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
--- 378,410 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
    return matlen;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
  }
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
+ /* Skip characters in PAT and return the final occurrence of DIRSEP.  This
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
+    is only called when extended_glob is set, so we have to skip over extglob
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
+    patterns x(...) */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
+ char *
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
+ glob_dirscan (pat, dirsep)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
+      char *pat;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
+      int dirsep;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
+ {
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
+   char *p, *d, *pe, *se;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
+ 
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
+   d = pe = se = 0;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
+   for (p = pat; p && *p; p++)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
+     {
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
+       if (extglob_pattern_p (p))
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
+ 	{
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
+ 	  if (se == 0)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
+ 	    se = p + strlen (p) - 1;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
+ 	  pe = glob_patscan (p + 2, se, 0);
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
+ 	  if (pe == 0)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
+ 	    continue;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
+ 	  else if (*pe == 0)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
+ 	    break;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
+ 	  p = pe - 1;	/* will do increment above */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
+ 	  continue;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
+ 	}
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
+       if (*p ==  dirsep)
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
+ 	d = p;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
+     }
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
+   return d;
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
+ }
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
*** ../bash-4.3/patchlevel.h	2012-12-29 10:47:57.000000000 -0500
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
--- patchlevel.h	2014-03-20 20:01:28.000000000 -0400
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
***************
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
*** 26,30 ****
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
     looks for to find the patch level (for the sccs version string). */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
! #define PATCHLEVEL 15
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
  #endif /* _PATCHLEVEL_H_ */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
--- 26,30 ----
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
     looks for to find the patch level (for the sccs version string). */
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
! #define PATCHLEVEL 16
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
  
c47fe0edc204 20612604 upgrade bash to 4.3
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
  #endif /* _PATCHLEVEL_H_ */