Patchlevel 18
This commit is contained in:
parent
49d8faf45f
commit
1b8a759a3f
19
bash.spec
19
bash.spec
@ -1,5 +1,5 @@
|
|||||||
#% define beta_tag rc2
|
#% define beta_tag rc2
|
||||||
%define patchleveltag .11
|
%define patchleveltag .18
|
||||||
%define baseversion 4.3
|
%define baseversion 4.3
|
||||||
%bcond_without tests
|
%bcond_without tests
|
||||||
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
||||||
@ -32,6 +32,13 @@ Patch008: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-008
|
|||||||
Patch009: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-009
|
Patch009: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-009
|
||||||
Patch010: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-010
|
Patch010: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-010
|
||||||
Patch011: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-011
|
Patch011: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-011
|
||||||
|
Patch012: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-012
|
||||||
|
Patch013: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-013
|
||||||
|
Patch014: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-014
|
||||||
|
Patch015: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-015
|
||||||
|
Patch016: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-016
|
||||||
|
Patch017: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-017
|
||||||
|
Patch018: ftp://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-018
|
||||||
|
|
||||||
# Other patches
|
# Other patches
|
||||||
Patch101: bash-2.02-security.patch
|
Patch101: bash-2.02-security.patch
|
||||||
@ -116,6 +123,13 @@ This package contains documentation files for %{name}.
|
|||||||
%patch009 -p0 -b .009
|
%patch009 -p0 -b .009
|
||||||
%patch010 -p0 -b .010
|
%patch010 -p0 -b .010
|
||||||
%patch011 -p0 -b .011
|
%patch011 -p0 -b .011
|
||||||
|
%patch012 -p0 -b .012
|
||||||
|
%patch013 -p0 -b .013
|
||||||
|
%patch014 -p0 -b .014
|
||||||
|
%patch015 -p0 -b .015
|
||||||
|
%patch016 -p0 -b .016
|
||||||
|
%patch017 -p0 -b .017
|
||||||
|
%patch018 -p0 -b .018
|
||||||
|
|
||||||
# Other patches
|
# Other patches
|
||||||
%patch101 -p1 -b .security
|
%patch101 -p1 -b .security
|
||||||
@ -336,6 +350,9 @@ end
|
|||||||
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Apr 14 2014 Ondrej Oprala <ooprala@redhat.com> - 4.3.18-1
|
||||||
|
- Patchlevel 18
|
||||||
|
|
||||||
* Mon Apr 14 2014 Ondrej Oprala <ooprala@redhat.com> - 4.3.11-2
|
* Mon Apr 14 2014 Ondrej Oprala <ooprala@redhat.com> - 4.3.11-2
|
||||||
- And let the build system know...
|
- And let the build system know...
|
||||||
|
|
||||||
|
43
bash43-012
Normal file
43
bash43-012
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-012
|
||||||
|
|
||||||
|
Bug-Reported-by: Eduardo A. Bustamante López<dualbus@gmail.com>
|
||||||
|
Bug-Reference-ID: <5346B54C.4070205@case.edu>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
When a SIGCHLD trap runs a command containing a shell builtin while
|
||||||
|
a script is running `wait' to wait for all running children to complete,
|
||||||
|
the SIGCHLD trap will not be run once for each child that terminates.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
|
||||||
|
*** ../bash-4.3-patched/jobs.c 2014-03-28 10:54:19.000000000 -0400
|
||||||
|
--- jobs.c 2014-04-15 08:47:03.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 3598,3601 ****
|
||||||
|
--- 3598,3602 ----
|
||||||
|
unwind_protect_pointer (the_pipeline);
|
||||||
|
unwind_protect_pointer (subst_assign_varlist);
|
||||||
|
+ unwind_protect_pointer (this_shell_builtin);
|
||||||
|
|
||||||
|
/* We have to add the commands this way because they will be run
|
||||||
|
*** ../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 11
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 12
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
66
bash43-013
Normal file
66
bash43-013
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-013
|
||||||
|
|
||||||
|
Bug-Reported-by: <Trond.Endrestol@ximalas.info>
|
||||||
|
Bug-Reference-ID: <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
Using reverse-i-search when horizontal scrolling is enabled does not redisplay
|
||||||
|
the entire line containing the successful search results.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400
|
||||||
|
--- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 1638,1642 ****
|
||||||
|
the spot of first difference is before the end of the invisible chars,
|
||||||
|
lendiff needs to be adjusted. */
|
||||||
|
! if (current_line == 0 && !_rl_horizontal_scroll_mode &&
|
||||||
|
current_invis_chars != visible_wrap_offset)
|
||||||
|
{
|
||||||
|
--- 1638,1642 ----
|
||||||
|
the spot of first difference is before the end of the invisible chars,
|
||||||
|
lendiff needs to be adjusted. */
|
||||||
|
! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
|
||||||
|
current_invis_chars != visible_wrap_offset)
|
||||||
|
{
|
||||||
|
***************
|
||||||
|
*** 1826,1831 ****
|
||||||
|
_rl_last_c_pos += bytes_to_insert;
|
||||||
|
|
||||||
|
if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
|
||||||
|
! goto clear_rest_of_line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--- 1826,1836 ----
|
||||||
|
_rl_last_c_pos += bytes_to_insert;
|
||||||
|
|
||||||
|
+ /* XXX - we only want to do this if we are at the end of the line
|
||||||
|
+ so we move there with _rl_move_cursor_relative */
|
||||||
|
if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
|
||||||
|
! {
|
||||||
|
! _rl_move_cursor_relative (ne-new, new);
|
||||||
|
! goto clear_rest_of_line;
|
||||||
|
! }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*** ../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 12
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 13
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
102
bash43-014
Normal file
102
bash43-014
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-014
|
||||||
|
|
||||||
|
Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
|
||||||
|
Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
Under certain circumstances, $@ is expanded incorrectly in contexts where
|
||||||
|
word splitting is not performed.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
*** ../bash-4.3-patched/subst.c 2014-01-23 16:26:37.000000000 -0500
|
||||||
|
--- subst.c 2014-04-19 15:41:26.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 3249,3254 ****
|
||||||
|
--- 3249,3256 ----
|
||||||
|
return ((char *)NULL);
|
||||||
|
|
||||||
|
+ expand_no_split_dollar_star = 1;
|
||||||
|
w->flags |= W_NOSPLIT2;
|
||||||
|
l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
|
||||||
|
+ expand_no_split_dollar_star = 0;
|
||||||
|
if (l)
|
||||||
|
{
|
||||||
|
***************
|
||||||
|
*** 7848,7851 ****
|
||||||
|
--- 7850,7857 ----
|
||||||
|
according to POSIX.2, this expands to a list of the positional
|
||||||
|
parameters no matter what IFS is set to. */
|
||||||
|
+ /* XXX - what to do when in a context where word splitting is not
|
||||||
|
+ performed? Even when IFS is not the default, posix seems to imply
|
||||||
|
+ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2
|
||||||
|
+ here. */
|
||||||
|
temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted);
|
||||||
|
|
||||||
|
***************
|
||||||
|
*** 8817,8820 ****
|
||||||
|
--- 8823,8827 ----
|
||||||
|
{
|
||||||
|
char *ifs_chars;
|
||||||
|
+ char *tstring;
|
||||||
|
|
||||||
|
ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL;
|
||||||
|
***************
|
||||||
|
*** 8831,8834 ****
|
||||||
|
--- 8838,8865 ----
|
||||||
|
if (split_on_spaces)
|
||||||
|
list = list_string (istring, " ", 1); /* XXX quoted == 1? */
|
||||||
|
+ /* If we have $@ (has_dollar_at != 0) and we are in a context where we
|
||||||
|
+ don't want to split the result (W_NOSPLIT2), and we are not quoted,
|
||||||
|
+ we have already separated the arguments with the first character of
|
||||||
|
+ $IFS. In this case, we want to return a list with a single word
|
||||||
|
+ with the separator possibly replaced with a space (it's what other
|
||||||
|
+ shells seem to do).
|
||||||
|
+ quoted_dollar_at is internal to this function and is set if we are
|
||||||
|
+ passed an argument that is unquoted (quoted == 0) but we encounter a
|
||||||
|
+ double-quoted $@ while expanding it. */
|
||||||
|
+ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2))
|
||||||
|
+ {
|
||||||
|
+ /* Only split and rejoin if we have to */
|
||||||
|
+ if (*ifs_chars && *ifs_chars != ' ')
|
||||||
|
+ {
|
||||||
|
+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
|
||||||
|
+ tstring = string_list (list);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ tstring = istring;
|
||||||
|
+ tword = make_bare_word (tstring);
|
||||||
|
+ if (tstring != istring)
|
||||||
|
+ free (tstring);
|
||||||
|
+ goto set_word_flags;
|
||||||
|
+ }
|
||||||
|
else if (has_dollar_at && ifs_chars)
|
||||||
|
list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
|
||||||
|
***************
|
||||||
|
*** 8836,8839 ****
|
||||||
|
--- 8867,8871 ----
|
||||||
|
{
|
||||||
|
tword = make_bare_word (istring);
|
||||||
|
+ set_word_flags:
|
||||||
|
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED))
|
||||||
|
tword->flags |= W_QUOTED;
|
||||||
|
*** ../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 13
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 14
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
58
bash43-015
Normal file
58
bash43-015
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-015
|
||||||
|
|
||||||
|
Bug-Reported-by: Clark Wang <dearvoid@gmail.com>
|
||||||
|
Bug-Reference-ID: <CADv8-og2TOSoabXeNVXVGaXN3tEMHnYVq1rwOLe5meaRPSGRig@mail.gmail.com>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
When completing directory names, the directory name is dequoted twice.
|
||||||
|
This causes problems for directories with single and double quotes in
|
||||||
|
their names.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
*** ../bash-4.3-patched/bashline.c 2014-02-09 19:56:58.000000000 -0500
|
||||||
|
--- bashline.c 2014-04-25 14:57:52.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 4168,4174 ****
|
||||||
|
|
||||||
|
qc = rl_dispatching ? rl_completion_quote_character : 0;
|
||||||
|
! dfn = bash_dequote_filename ((char *)text, qc);
|
||||||
|
m1 = rl_completion_matches (dfn, rl_filename_completion_function);
|
||||||
|
! free (dfn);
|
||||||
|
|
||||||
|
if (m1 == 0 || m1[0] == 0)
|
||||||
|
--- 4209,4222 ----
|
||||||
|
|
||||||
|
qc = rl_dispatching ? rl_completion_quote_character : 0;
|
||||||
|
! /* If rl_completion_found_quote != 0, rl_completion_matches will call the
|
||||||
|
! filename dequoting function, causing the directory name to be dequoted
|
||||||
|
! twice. */
|
||||||
|
! if (rl_dispatching && rl_completion_found_quote == 0)
|
||||||
|
! dfn = bash_dequote_filename ((char *)text, qc);
|
||||||
|
! else
|
||||||
|
! dfn = (char *)text;
|
||||||
|
m1 = rl_completion_matches (dfn, rl_filename_completion_function);
|
||||||
|
! if (dfn != text)
|
||||||
|
! free (dfn);
|
||||||
|
|
||||||
|
if (m1 == 0 || m1[0] == 0)
|
||||||
|
*** ../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 14
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 15
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
132
bash43-016
Normal file
132
bash43-016
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
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_ */
|
51
bash43-017
Normal file
51
bash43-017
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-017
|
||||||
|
|
||||||
|
Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
|
||||||
|
Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
The code that creates local variables should not clear the `invisible'
|
||||||
|
attribute when returning an existing local variable. Let the code that
|
||||||
|
actually assigns a value clear it.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
*** ../bash-4.3-patched/variables.c 2014-02-14 11:55:12.000000000 -0500
|
||||||
|
--- variables.c 2014-05-07 10:53:57.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 2198,2205 ****
|
||||||
|
old_var = find_variable (name);
|
||||||
|
if (old_var && local_p (old_var) && old_var->context == variable_context)
|
||||||
|
! {
|
||||||
|
! VUNSETATTR (old_var, att_invisible); /* XXX */
|
||||||
|
! return (old_var);
|
||||||
|
! }
|
||||||
|
|
||||||
|
was_tmpvar = old_var && tempvar_p (old_var);
|
||||||
|
--- 2260,2264 ----
|
||||||
|
old_var = find_variable (name);
|
||||||
|
if (old_var && local_p (old_var) && old_var->context == variable_context)
|
||||||
|
! return (old_var);
|
||||||
|
|
||||||
|
was_tmpvar = old_var && tempvar_p (old_var);
|
||||||
|
|
||||||
|
*** ../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 16
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 17
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
44
bash43-018
Normal file
44
bash43-018
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
BASH PATCH REPORT
|
||||||
|
=================
|
||||||
|
|
||||||
|
Bash-Release: 4.3
|
||||||
|
Patch-ID: bash43-018
|
||||||
|
|
||||||
|
Bug-Reported-by: Geir Hauge <geir.hauge@gmail.com>
|
||||||
|
Bug-Reference-ID: <CAO-BiTLOvfPXDypg61jcBausADrxUKJejakV2WTWP26cW0=rgA@mail.gmail.com>
|
||||||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html
|
||||||
|
|
||||||
|
Bug-Description:
|
||||||
|
|
||||||
|
When assigning an array variable using the compound assignment syntax,
|
||||||
|
but using `declare' with the rhs of the compound assignment quoted, the
|
||||||
|
shell did not mark the variable as visible after successfully performing
|
||||||
|
the assignment.
|
||||||
|
|
||||||
|
Patch (apply with `patch -p0'):
|
||||||
|
*** ../bash-4.3-patched/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400
|
||||||
|
--- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400
|
||||||
|
***************
|
||||||
|
*** 180,183 ****
|
||||||
|
--- 180,184 ----
|
||||||
|
FREE (newval);
|
||||||
|
|
||||||
|
+ VUNSETATTR (entry, att_invisible); /* no longer invisible */
|
||||||
|
return (entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
*** ../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 17
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
||||||
|
--- 26,30 ----
|
||||||
|
looks for to find the patch level (for the sccs version string). */
|
||||||
|
|
||||||
|
! #define PATCHLEVEL 18
|
||||||
|
|
||||||
|
#endif /* _PATCHLEVEL_H_ */
|
Loading…
Reference in New Issue
Block a user