Page MenuHomeSolus

D6102.id.diff
No OneTemporary

D6102.id.diff

diff --git a/files/bash44-001 b/files/bash44-001
deleted file mode 100644
--- a/files/bash44-001
+++ /dev/null
@@ -1,60 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-001
-
-Bug-Reported-by: Sean Zha <freeman_cha@hotmail.com>
-Bug-Reference-ID: <BN3PR01MB13657D9303EB94BF6E54216E8CCA0@BN3PR01MB1365.prod.exchangelabs.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00107.html
-
-Bug-Description:
-
-Bash-4.4 changed the way the history list is initially allocated to reduce
-the number of reallocations and copies. Users who set HISTSIZE to a very
-large number to essentially unlimit the size of the history list will get
-memory allocation errors
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/lib/readline/history.c 2015-12-28 13:50:31.000000000 -0500
---- lib/readline/history.c 2016-09-30 14:28:40.000000000 -0400
-***************
-*** 58,61 ****
---- 58,63 ----
- #define DEFAULT_HISTORY_INITIAL_SIZE 502
-
-+ #define MAX_HISTORY_INITIAL_SIZE 8192
-+
- /* The number of slots to increase the_history by. */
- #define DEFAULT_HISTORY_GROW_SIZE 50
-***************
-*** 308,312 ****
- {
- if (history_stifled && history_max_entries > 0)
-! history_size = history_max_entries + 2;
- else
- history_size = DEFAULT_HISTORY_INITIAL_SIZE;
---- 310,316 ----
- {
- if (history_stifled && history_max_entries > 0)
-! history_size = (history_max_entries > MAX_HISTORY_INITIAL_SIZE)
-! ? MAX_HISTORY_INITIAL_SIZE
-! : history_max_entries + 2;
- else
- history_size = DEFAULT_HISTORY_INITIAL_SIZE;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-002 b/files/bash44-002
deleted file mode 100644
--- a/files/bash44-002
+++ /dev/null
@@ -1,69 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-002
-
-Bug-Reported-by: Eric Pruitt <eric.pruitt@gmail.com>
-Bug-Reference-ID: <20160916055120.GA28272@sinister.codevat.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00015.html
-
-Bug-Description:
-
-Bash-4.4 warns when discarding NUL bytes in command substitution output
-instead of silently dropping them. This patch changes the warnings from
-one per NUL byte encountered to one warning per command substitution.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/subst.c 2016-08-30 16:46:38.000000000 -0400
---- subst.c 2016-09-26 10:20:19.000000000 -0400
-***************
-*** 5932,5935 ****
---- 5933,5937 ----
- int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul;
- ssize_t bufn;
-+ int nullbyte;
-
- istring = (char *)NULL;
-***************
-*** 5939,5942 ****
---- 5941,5946 ----
- skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL;
-
-+ nullbyte = 0;
-+
- /* Read the output of the command through the pipe. This may need to be
- changed to understand multibyte characters in the future. */
-***************
-*** 5957,5961 ****
- {
- #if 1
-! internal_warning ("%s", _("command substitution: ignored null byte in input"));
- #endif
- continue;
---- 5961,5969 ----
- {
- #if 1
-! if (nullbyte == 0)
-! {
-! internal_warning ("%s", _("command substitution: ignored null byte in input"));
-! nullbyte = 1;
-! }
- #endif
- continue;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-003 b/files/bash44-003
deleted file mode 100644
--- a/files/bash44-003
+++ /dev/null
@@ -1,58 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-003
-
-Bug-Reported-by: op7ic \x00 <op7ica@gmail.com>
-Bug-Reference-ID: <CAFHyJTopWC5Jx+U7WcvxSZKu+KrqSf+_3sHPiRWo=VzXSiPq=w@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00005.html
-
-Bug-Description:
-
-Specially-crafted input, in this case an incomplete pathname expansion
-bracket expression containing an invalid collating symbol, can cause the
-shell to crash.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/lib/glob/sm_loop.c 2016-04-10 11:23:21.000000000 -0400
---- lib/glob/sm_loop.c 2016-11-02 14:03:34.000000000 -0400
-***************
-*** 331,334 ****
---- 331,340 ----
- if (p[pc] == L('.') && p[pc+1] == L(']'))
- break;
-+ if (p[pc] == 0)
-+ {
-+ if (vp)
-+ *vp = INVALID;
-+ return (p + pc);
-+ }
- val = COLLSYM (p, pc);
- if (vp)
-***************
-*** 484,487 ****
---- 490,496 ----
- c = FOLD (c);
-
-+ if (c == L('\0'))
-+ return ((test == L('[')) ? savep : (CHAR *)0);
-+
- if ((flags & FNM_PATHNAME) && c == L('/'))
- /* [/] can never match when matching a pathname. */
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-004 b/files/bash44-004
deleted file mode 100644
--- a/files/bash44-004
+++ /dev/null
@@ -1,84 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-004
-
-Bug-Reported-by: Christian Weisgerber <naddy@mips.inka.de>
-Bug-Reference-ID: <20161101160302.GB54856@lorvorc.mips.inka.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00004.html
-
-Bug-Description:
-
-There is a race condition that can result in bash referencing freed memory
-when freeing data associated with the last process substitution.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/jobs.c 2016-08-23 16:38:44.000000000 -0400
---- jobs.c 2016-11-02 18:24:45.000000000 -0400
-***************
-*** 454,457 ****
---- 454,472 ----
- }
-
-+ void
-+ discard_last_procsub_child ()
-+ {
-+ PROCESS *disposer;
-+ sigset_t set, oset;
-+
-+ BLOCK_CHILD (set, oset);
-+ disposer = last_procsub_child;
-+ last_procsub_child = (PROCESS *)NULL;
-+ UNBLOCK_CHILD (oset);
-+
-+ if (disposer)
-+ discard_pipeline (disposer);
-+ }
-+
- struct pipeline_saver *
- alloc_pipeline_saver ()
-*** ../bash-4.4/jobs.h 2016-04-27 10:35:51.000000000 -0400
---- jobs.h 2016-11-02 18:25:08.000000000 -0400
-***************
-*** 191,194 ****
---- 191,195 ----
- extern void stop_making_children __P((void));
- extern void cleanup_the_pipeline __P((void));
-+ extern void discard_last_procsub_child __P((void));
- extern void save_pipeline __P((int));
- extern PROCESS *restore_pipeline __P((int));
-*** ../bash-4.4/subst.c 2016-08-30 16:46:38.000000000 -0400
---- subst.c 2016-11-02 18:23:24.000000000 -0400
-***************
-*** 5809,5816 ****
- #if defined (JOB_CONTROL)
- if (last_procsub_child)
-! {
-! discard_pipeline (last_procsub_child);
-! last_procsub_child = (PROCESS *)NULL;
-! }
- last_procsub_child = restore_pipeline (0);
- #endif
---- 5834,5838 ----
- #if defined (JOB_CONTROL)
- if (last_procsub_child)
-! discard_last_procsub_child ();
- last_procsub_child = restore_pipeline (0);
- #endif
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-005 b/files/bash44-005
deleted file mode 100644
--- a/files/bash44-005
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-005
-
-Bug-Reported-by: Dr. Werner Fink <werner@suse.de>
-Bug-Reference-ID: <20161107100936.ajnojd7dspirdflf@noether.suse.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00054.html
-
-Bug-Description:
-
-Under certain circumstances, a simple command is optimized to eliminate a
-fork, resulting in an EXIT trap not being executed.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/builtins/evalstring.c 2016-08-11 14:18:51.000000000 -0400
---- builtins/evalstring.c 2016-11-08 15:05:07.000000000 -0500
-***************
-*** 105,114 ****
- *bash_input.location.string == '\0' &&
- command->type == cm_simple &&
-- #if 0
- signal_is_trapped (EXIT_TRAP) == 0 &&
- signal_is_trapped (ERROR_TRAP) == 0 &&
-- #else
- any_signals_trapped () < 0 &&
-- #endif
- command->redirects == 0 && command->value.Simple->redirects == 0 &&
- ((command->flags & CMD_TIME_PIPELINE) == 0) &&
---- 105,111 ----
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-006 b/files/bash44-006
deleted file mode 100644
--- a/files/bash44-006
+++ /dev/null
@@ -1,59 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-006
-
-Bug-Reported-by: <fernando@null-life.com>
-Bug-Reference-ID: <CAEr-gPFPvqheiAeENmMkEwWRd4U=1iqCsYmR3sLdULOqL++_tQ@mail.gmail.com>
-Bug-Reference-URL:
-
-Bug-Description:
-
-Out-of-range negative offsets to popd can cause the shell to crash attempting
-to free an invalid memory block.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/builtins/pushd.def 2016-01-25 13:31:49.000000000 -0500
---- builtins/pushd.def 2016-10-28 10:46:49.000000000 -0400
-***************
-*** 366,370 ****
- }
-
-! if (which > directory_list_offset || (directory_list_offset == 0 && which == 0))
- {
- pushd_error (directory_list_offset, which_word ? which_word : "");
---- 366,370 ----
- }
-
-! if (which > directory_list_offset || (which < -directory_list_offset) || (directory_list_offset == 0 && which == 0))
- {
- pushd_error (directory_list_offset, which_word ? which_word : "");
-***************
-*** 388,391 ****
---- 388,396 ----
- of the list into place. */
- i = (direction == '+') ? directory_list_offset - which : which;
-+ if (i < 0 || i > directory_list_offset)
-+ {
-+ pushd_error (directory_list_offset, which_word ? which_word : "");
-+ return (EXECUTION_FAILURE);
-+ }
- free (pushd_directory_list[i]);
- directory_list_offset--;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-007 b/files/bash44-007
deleted file mode 100644
--- a/files/bash44-007
+++ /dev/null
@@ -1,151 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-007
-
-Bug-Reported-by: Jens Heyens <jens.heyens@cispa.saarland>
-Bug-Reference-ID:
-Bug-Reference-URL: https://savannah.gnu.org/support/?109224
-
-Bug-Description:
-
-When performing filename completion, bash dequotes the directory name being
-completed, which can result in match failures and potential unwanted
-expansion.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/bashline.c 2016-08-05 21:44:05.000000000 -0400
---- bashline.c 2017-01-19 13:15:51.000000000 -0500
-***************
-*** 143,147 ****
- static void restore_directory_hook __P((rl_icppfunc_t));
-
-! static int directory_exists __P((const char *));
-
- static void cleanup_expansion_error __P((void));
---- 144,148 ----
- static void restore_directory_hook __P((rl_icppfunc_t));
-
-! static int directory_exists __P((const char *, int));
-
- static void cleanup_expansion_error __P((void));
-***************
-*** 3103,3111 ****
- }
-
-! /* Check whether not the (dequoted) version of DIRNAME, with any trailing slash
-! removed, exists. */
- static int
-! directory_exists (dirname)
- const char *dirname;
- {
- char *new_dirname;
---- 3107,3116 ----
- }
-
-! /* Check whether not DIRNAME, with any trailing slash removed, exists. If
-! SHOULD_DEQUOTE is non-zero, we dequote the directory name first. */
- static int
-! directory_exists (dirname, should_dequote)
- const char *dirname;
-+ int should_dequote;
- {
- char *new_dirname;
-***************
-*** 3113,3118 ****
- struct stat sb;
-
-! /* First, dequote the directory name */
-! new_dirname = bash_dequote_filename ((char *)dirname, rl_completion_quote_character);
- dirlen = STRLEN (new_dirname);
- if (new_dirname[dirlen - 1] == '/')
---- 3118,3124 ----
- struct stat sb;
-
-! /* We save the string and chop the trailing slash because stat/lstat behave
-! inconsistently if one is present. */
-! new_dirname = should_dequote ? bash_dequote_filename ((char *)dirname, rl_completion_quote_character) : savestring (dirname);
- dirlen = STRLEN (new_dirname);
- if (new_dirname[dirlen - 1] == '/')
-***************
-*** 3146,3150 ****
- should_expand_dirname = '`';
-
-! if (should_expand_dirname && directory_exists (local_dirname))
- should_expand_dirname = 0;
-
---- 3152,3156 ----
- should_expand_dirname = '`';
-
-! if (should_expand_dirname && directory_exists (local_dirname, 0))
- should_expand_dirname = 0;
-
-***************
-*** 3156,3160 ****
- global_nounset = unbound_vars_is_error;
- unbound_vars_is_error = 0;
-! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */
- unbound_vars_is_error = global_nounset;
- if (wl)
---- 3162,3166 ----
- global_nounset = unbound_vars_is_error;
- unbound_vars_is_error = 0;
-! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_NOPROCSUB|W_COMPLETE); /* does the right thing */
- unbound_vars_is_error = global_nounset;
- if (wl)
-***************
-*** 3245,3249 ****
- }
-
-! if (should_expand_dirname && directory_exists (local_dirname))
- should_expand_dirname = 0;
-
---- 3262,3266 ----
- }
-
-! if (should_expand_dirname && directory_exists (local_dirname, 1))
- should_expand_dirname = 0;
-
-***************
-*** 3251,3255 ****
- {
- new_dirname = savestring (local_dirname);
-! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_COMPLETE); /* does the right thing */
- if (wl)
- {
---- 3268,3272 ----
- {
- new_dirname = savestring (local_dirname);
-! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB|W_NOPROCSUB|W_COMPLETE); /* does the right thing */
- if (wl)
- {
-*** ../bash-4.4/subst.c 2016-08-30 16:46:38.000000000 -0400
---- subst.c 2017-01-19 07:09:57.000000000 -0500
-***************
-*** 9459,9462 ****
---- 9459,9466 ----
- if (word->flags & W_COMPLETE)
- tword->flags |= W_COMPLETE; /* for command substitutions */
-+ if (word->flags & W_NOCOMSUB)
-+ tword->flags |= W_NOCOMSUB;
-+ if (word->flags & W_NOPROCSUB)
-+ tword->flags |= W_NOPROCSUB;
-
- temp = (char *)NULL;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-008 b/files/bash44-008
deleted file mode 100644
--- a/files/bash44-008
+++ /dev/null
@@ -1,84 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-008
-
-Bug-Reported-by: Koichi MURASE <myoga.murase@gmail.com>
-Bug-Reference-ID: <CAFLRLk-V+1AeQ2k=pY7ih6V+MfQ_w8EF3YWL2E+wmLfgKBtzXA@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00050.html
-
-Bug-Description:
-
-Under certain circumstances, bash will evaluate arithmetic expressions as
-part of reading an expression token even when evaluation is suppressed. This
-happens while evaluating a conditional expression and skipping over the
-failed branch of the expression.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/expr.c 2015-10-11 14:46:36.000000000 -0400
---- expr.c 2016-11-08 11:55:46.000000000 -0500
-***************
-*** 579,585 ****
- if (curtok == QUES) /* found conditional expr */
- {
-- readtok ();
-- if (curtok == 0 || curtok == COL)
-- evalerror (_("expression expected"));
- if (cval == 0)
- {
---- 579,582 ----
-***************
-*** 588,591 ****
---- 585,592 ----
- }
-
-+ readtok ();
-+ if (curtok == 0 || curtok == COL)
-+ evalerror (_("expression expected"));
-+
- val1 = EXP_HIGHEST ();
-
-***************
-*** 594,600 ****
- if (curtok != COL)
- evalerror (_("`:' expected for conditional expression"));
-! readtok ();
-! if (curtok == 0)
-! evalerror (_("expression expected"));
- set_noeval = 0;
- if (cval)
---- 595,599 ----
- if (curtok != COL)
- evalerror (_("`:' expected for conditional expression"));
-!
- set_noeval = 0;
- if (cval)
-***************
-*** 604,608 ****
---- 603,611 ----
- }
-
-+ readtok ();
-+ if (curtok == 0)
-+ evalerror (_("expression expected"));
- val2 = expcond ();
-+
- if (set_noeval)
- noeval--;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-009 b/files/bash44-009
deleted file mode 100644
--- a/files/bash44-009
+++ /dev/null
@@ -1,107 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-009
-
-Bug-Reported-by: Hong Cho <hong.cho@citrix.com>
-Bug-Reference-ID: <c30b5fe62b2543af8297e47ca487c29c@SJCPEX02CL02.citrite.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-12/msg00043.html
-
-Bug-Description:
-
-There is a race condition in add_history() that can be triggered by a fatal
-signal arriving between the time the history length is updated and the time
-the history list update is completed. A later attempt to reference an
-invalid history entry can cause a crash.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/lib/readline/history.c 2016-11-11 13:42:49.000000000 -0500
---- lib/readline/history.c 2016-12-05 10:37:51.000000000 -0500
-***************
-*** 280,283 ****
---- 280,284 ----
- {
- HIST_ENTRY *temp;
-+ int new_length;
-
- if (history_stifled && (history_length == history_max_entries))
-***************
-*** 296,306 ****
- /* Copy the rest of the entries, moving down one slot. Copy includes
- trailing NULL. */
-- #if 0
-- for (i = 0; i < history_length; i++)
-- the_history[i] = the_history[i + 1];
-- #else
- memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *));
-- #endif
-
- history_base++;
- }
---- 297,303 ----
- /* Copy the rest of the entries, moving down one slot. Copy includes
- trailing NULL. */
- memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *));
-
-+ new_length = history_length;
- history_base++;
- }
-***************
-*** 316,320 ****
- history_size = DEFAULT_HISTORY_INITIAL_SIZE;
- the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
-! history_length = 1;
- }
- else
---- 313,317 ----
- history_size = DEFAULT_HISTORY_INITIAL_SIZE;
- the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
-! new_length = 1;
- }
- else
-***************
-*** 326,330 ****
- xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
- }
-! history_length++;
- }
- }
---- 323,327 ----
- xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
- }
-! new_length = history_length + 1;
- }
- }
-***************
-*** 332,337 ****
- temp = alloc_history_entry ((char *)string, hist_inittime ());
-
-! the_history[history_length] = (HIST_ENTRY *)NULL;
-! the_history[history_length - 1] = temp;
- }
-
---- 329,335 ----
- temp = alloc_history_entry ((char *)string, hist_inittime ());
-
-! the_history[new_length] = (HIST_ENTRY *)NULL;
-! the_history[new_length - 1] = temp;
-! history_length = new_length;
- }
-
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-010 b/files/bash44-010
deleted file mode 100644
--- a/files/bash44-010
+++ /dev/null
@@ -1,49 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-010
-
-Bug-Reported-by: Clark Wang <dearvoid@gmail.com>
-Bug-Reference-ID: <CADv8-og092RvvUUHy46=BPKChCXw5g=GOOqgN0V3f4a3TpLebQ@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00104.html
-
-Bug-Description:
-
-Depending on compiler optimizations and behavior, the `read' builtin may not
-save partial input when a timeout occurs.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/builtins/read.def 2016-05-16 14:24:56.000000000 -0400
---- builtins/read.def 2016-11-25 12:37:56.000000000 -0500
-***************
-*** 182,186 ****
- {
- register char *varname;
-! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
- int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
- int raw, edit, nchars, silent, have_timeout, ignore_delim, fd, lastsig, t_errno;
---- 182,187 ----
- {
- register char *varname;
-! int size, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
-! volatile int i;
- int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
- int raw, edit, nchars, silent, have_timeout, ignore_delim, fd, lastsig, t_errno;
-
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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/files/bash44-011 b/files/bash44-011
deleted file mode 100644
--- a/files/bash44-011
+++ /dev/null
@@ -1,50 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-011
-
-Bug-Reported-by: Russell King <rmk@armlinux.org.uk>
-Bug-Reference-ID: <E1cNnFx-0007G2-S2@flint.armlinux.org.uk>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-01/msg00000.html
-
-Bug-Description:
-
-Subshells begun to run command and process substitutions may attempt to
-set the terminal's process group to an incorrect value if they receive
-a fatal signal. This depends on the behavior of the process that starts
-the shell.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/sig.c 2016-02-11 15:02:45.000000000 -0500
---- sig.c 2017-01-04 09:09:47.000000000 -0500
-***************
-*** 586,590 ****
- if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
- hangup_all_jobs ();
-! end_job_control ();
- #endif /* JOB_CONTROL */
-
---- 571,576 ----
- if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
- hangup_all_jobs ();
-! if ((subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB)) == 0)
-! end_job_control ();
- #endif /* JOB_CONTROL */
-
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 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_ */
diff --git a/files/bash44-012 b/files/bash44-012
deleted file mode 100644
--- a/files/bash44-012
+++ /dev/null
@@ -1,161 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-012
-
-Bug-Reported-by: Clark Wang <dearvoid@gmail.com>
-Bug-Reference-ID: <CADv8-ojttPUFOZXqbjsvy83LfaJtQKZ5qejGdF6j0VJ3vtrYOA@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-11/msg00106.html
-
-Bug-Description:
-
-When -N is used, the input is not supposed to be split using $IFS, but
-leading and trailing IFS whitespace was still removed.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/subst.c 2017-01-20 14:22:01.000000000 -0500
---- subst.c 2017-01-25 13:43:22.000000000 -0500
-***************
-*** 2826,2834 ****
- /* Parse a single word from STRING, using SEPARATORS to separate fields.
- ENDPTR is set to the first character after the word. This is used by
-! the `read' builtin. This is never called with SEPARATORS != $IFS;
-! it should be simplified.
-
- XXX - this function is very similar to list_string; they should be
- combined - XXX */
- char *
- get_word_from_string (stringp, separators, endptr)
---- 2826,2838 ----
- /* Parse a single word from STRING, using SEPARATORS to separate fields.
- ENDPTR is set to the first character after the word. This is used by
-! the `read' builtin.
-!
-! This is never called with SEPARATORS != $IFS, and takes advantage of that.
-
- XXX - this function is very similar to list_string; they should be
- combined - XXX */
-+
-+ #define islocalsep(c) (local_cmap[(unsigned char)(c)] != 0)
-+
- char *
- get_word_from_string (stringp, separators, endptr)
-***************
-*** 2838,2841 ****
---- 2842,2846 ----
- char *current_word;
- int sindex, sh_style_split, whitesep, xflags;
-+ unsigned char local_cmap[UCHAR_MAX+1]; /* really only need single-byte chars here */
- size_t slen;
-
-***************
-*** 2847,2854 ****
- separators[2] == '\n' &&
- separators[3] == '\0';
-! for (xflags = 0, s = ifs_value; s && *s; s++)
- {
- if (*s == CTLESC) xflags |= SX_NOCTLESC;
- if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL;
- }
-
---- 2852,2861 ----
- separators[2] == '\n' &&
- separators[3] == '\0';
-! memset (local_cmap, '\0', sizeof (local_cmap));
-! for (xflags = 0, s = separators; s && *s; s++)
- {
- if (*s == CTLESC) xflags |= SX_NOCTLESC;
- if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL;
-+ local_cmap[(unsigned char)*s] = 1; /* local charmap of separators */
- }
-
-***************
-*** 2857,2864 ****
-
- /* Remove sequences of whitespace at the beginning of STRING, as
-! long as those characters appear in IFS. */
-! if (sh_style_split || !separators || !*separators)
- {
-! for (; *s && spctabnl (*s) && isifs (*s); s++);
-
- /* If the string is nothing but whitespace, update it and return. */
---- 2864,2872 ----
-
- /* Remove sequences of whitespace at the beginning of STRING, as
-! long as those characters appear in SEPARATORS. This happens if
-! SEPARATORS == $' \t\n' or if IFS is unset. */
-! if (sh_style_split || separators == 0)
- {
-! for (; *s && spctabnl (*s) && islocalsep (*s); s++);
-
- /* If the string is nothing but whitespace, update it and return. */
-***************
-*** 2879,2885 ****
- This obeys the field splitting rules in Posix.2. */
- sindex = 0;
-! /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim
-! unless multibyte chars are possible. */
-! slen = (MB_CUR_MAX > 1) ? STRLEN (s) : 1;
- current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags);
-
---- 2887,2893 ----
- This obeys the field splitting rules in Posix.2. */
- sindex = 0;
-! /* Don't need string length in ADVANCE_CHAR unless multibyte chars are
-! possible, but need it in string_extract_verbatim for bounds checking */
-! slen = STRLEN (s);
- current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags);
-
-***************
-*** 2900,2904 ****
- /* Now skip sequences of space, tab, or newline characters if they are
- in the list of separators. */
-! while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex]))
- sindex++;
-
---- 2908,2912 ----
- /* Now skip sequences of space, tab, or newline characters if they are
- in the list of separators. */
-! while (s[sindex] && spctabnl (s[sindex]) && islocalsep (s[sindex]))
- sindex++;
-
-***************
-*** 2907,2916 ****
- delimiter, not a separate delimiter that would result in an empty field.
- Look at POSIX.2, 3.6.5, (3)(b). */
-! if (s[sindex] && whitesep && isifs (s[sindex]) && !spctabnl (s[sindex]))
- {
- sindex++;
- /* An IFS character that is not IFS white space, along with any adjacent
- IFS white space, shall delimit a field. */
-! while (s[sindex] && spctabnl (s[sindex]) && isifs (s[sindex]))
- sindex++;
- }
---- 2915,2924 ----
- delimiter, not a separate delimiter that would result in an empty field.
- Look at POSIX.2, 3.6.5, (3)(b). */
-! if (s[sindex] && whitesep && islocalsep (s[sindex]) && !spctabnl (s[sindex]))
- {
- sindex++;
- /* An IFS character that is not IFS white space, along with any adjacent
- IFS white space, shall delimit a field. */
-! while (s[sindex] && spctabnl (s[sindex]) && islocalsep(s[sindex]))
- sindex++;
- }
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-013 b/files/bash44-013
deleted file mode 100644
--- a/files/bash44-013
+++ /dev/null
@@ -1,43 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-013
-
-Bug-Reported-by: Siteshwar Vashisht <svashisht@redhat.com>
-Bug-Reference-ID: <1508861265.9523642.1484659442561.JavaMail.zimbra@redhat.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-01/msg00026.html
-
-Bug-Description:
-
-If a here-document contains a command substitution, the command substitution
-can get access to the file descriptor used to write the here-document.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4-patched/redir.c 2016-06-02 20:22:24.000000000 -0400
---- redir.c 2017-01-17 13:23:40.000000000 -0500
-***************
-*** 470,473 ****
---- 467,472 ----
- }
-
-+ SET_CLOSE_ON_EXEC (fd);
-+
- errno = r = 0; /* XXX */
- /* write_here_document returns 0 on success, errno on failure. */
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-014 b/files/bash44-014
deleted file mode 100644
--- a/files/bash44-014
+++ /dev/null
@@ -1,104 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-014
-
-Bug-Reported-by: Oyvind Hvidsten <oyvind.hvidsten@dhampir.no>
-Bug-Reference-ID: <c01b7049-925c-9409-d978-e59bf42591f4@dhampir.no>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-12/msg00023.html
-
-Bug-Description:
-
-Under some circumstances, functions that return via the `return' builtin do
-not clean up memory they allocated to keep track of FIFOs.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-20171205/execute_cmd.c 2017-12-08 07:38:28.000000000 -0500
---- execute_cmd.c 2018-01-26 15:23:38.000000000 -0500
-***************
-*** 727,730 ****
---- 727,732 ----
- ofifo = num_fifos ();
- ofifo_list = copy_fifo_list ((int *)&osize);
-+ begin_unwind_frame ("internal_fifos");
-+ add_unwind_protect (xfree, ofifo_list);
- saved_fifo = 1;
- }
-***************
-*** 742,746 ****
- #if defined (PROCESS_SUBSTITUTION)
- if (saved_fifo)
-! free ((void *)ofifo_list);
- #endif
- return (last_command_exit_value = EXECUTION_FAILURE);
---- 744,751 ----
- #if defined (PROCESS_SUBSTITUTION)
- if (saved_fifo)
-! {
-! free ((void *)ofifo_list);
-! discard_unwind_frame ("internal_fifos");
-! }
- #endif
- return (last_command_exit_value = EXECUTION_FAILURE);
-***************
-*** 1061,1064 ****
---- 1066,1070 ----
- close_new_fifos ((char *)ofifo_list, osize);
- free ((void *)ofifo_list);
-+ discard_unwind_frame ("internal_fifos");
- }
- #endif
-***************
-*** 4978,4984 ****
- #endif
-
-! #if defined (PROCESS_SUBSTITUTION)
- ofifo = num_fifos ();
- ofifo_list = copy_fifo_list (&osize);
- #endif
-
---- 4984,4995 ----
- #endif
-
-! #if defined (PROCESS_SUBSTITUTION)
-! begin_unwind_frame ("saved_fifos");
-! /* If we return, we longjmp and don't get a chance to restore the old
-! fifo list, so we add an unwind protect to free it */
- ofifo = num_fifos ();
- ofifo_list = copy_fifo_list (&osize);
-+ if (ofifo_list)
-+ add_unwind_protect (xfree, ofifo_list);
- #endif
-
-***************
-*** 5064,5068 ****
- if (nfifo > ofifo)
- close_new_fifos (ofifo_list, osize);
-! free (ofifo_list);
- #endif
-
---- 5075,5081 ----
- if (nfifo > ofifo)
- close_new_fifos (ofifo_list, osize);
-! if (ofifo_list)
-! free (ofifo_list);
-! discard_unwind_frame ("saved_fifos");
- #endif
-
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-015 b/files/bash44-015
deleted file mode 100644
--- a/files/bash44-015
+++ /dev/null
@@ -1,43 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-015
-
-Bug-Reported-by: David Simmons <bug-bash@tmp.davidsimmons.com>
-Bug-Reference-ID: <bc6f0839-fa50-fe8f-65f5-5aa6feb11ec5@davidsimmons.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-02/msg00033.html
-
-Bug-Description:
-
-Process substitution can leak internal quoting to the parser in the invoked
-subshell.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-20170210/subst.c 2017-01-19 11:08:50.000000000 -0500
---- subst.c 2017-02-20 10:12:49.000000000 -0500
-***************
-*** 5907,5910 ****
---- 5907,5912 ----
- expanding_redir = 0;
-
-+ remove_quoted_escapes (string);
-+
- subshell_level++;
- result = parse_and_execute (string, "process substitution", (SEVAL_NONINT|SEVAL_NOHIST));
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-016 b/files/bash44-016
deleted file mode 100644
--- a/files/bash44-016
+++ /dev/null
@@ -1,78 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-016
-
-Bug-Reported-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
-Bug-Reference-ID: <CAJq09z7G1-QnLyiUQA0DS=V3da_rtHF8VdYbbdzPe_W3kydpRg@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00092.html
-
-Bug-Description:
-
-Bash can perform trap processing while reading command substitution output
-instead of waiting until the command completes.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4/lib/sh/zread.c 2014-12-22 10:48:04.000000000 -0500
---- lib/sh/zread.c 2016-09-29 15:21:36.000000000 -0400
-***************
-*** 38,42 ****
---- 38,45 ----
- #endif
-
-+ extern int executing_builtin;
-+
- extern void check_signals_and_traps (void);
-+ extern void check_signals (void);
- extern int signal_is_trapped (int);
-
-***************
-*** 51,69 ****
- ssize_t r;
-
-- #if 0
-- #if defined (HAVE_SIGINTERRUPT)
-- if (signal_is_trapped (SIGCHLD))
-- siginterrupt (SIGCHLD, 1);
-- #endif
-- #endif
--
- while ((r = read (fd, buf, len)) < 0 && errno == EINTR)
-! check_signals_and_traps (); /* XXX - should it be check_signals()? */
-!
-! #if 0
-! #if defined (HAVE_SIGINTERRUPT)
-! siginterrupt (SIGCHLD, 0);
-! #endif
-! #endif
-
- return r;
---- 54,64 ----
- ssize_t r;
-
- while ((r = read (fd, buf, len)) < 0 && errno == EINTR)
-! /* XXX - bash-5.0 */
-! /* We check executing_builtin and run traps here for backwards compatibility */
-! if (executing_builtin)
-! check_signals_and_traps (); /* XXX - should it be check_signals()? */
-! else
-! check_signals ();
-
- return r;
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-017 b/files/bash44-017
deleted file mode 100644
--- a/files/bash44-017
+++ /dev/null
@@ -1,45 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-017
-
-Bug-Reported-by: ZhangXiao <xiao.zhang@windriver.com>
-Bug-Reference-ID: <58AD3EAC.4020608@windriver.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2017-02/msg00061.html
-
-Bug-Description:
-
-There is a memory leak when `read -e' is used to read a line using readline.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-20170217/builtins/read.def 2017-01-02 16:53:02.000000000 -0500
---- builtins/read.def 2017-02-22 09:43:14.000000000 -0500
-***************
-*** 691,694 ****
---- 691,699 ----
- CHECK_ALRM;
-
-+ #if defined (READLINE)
-+ if (edit)
-+ free (rlbuf);
-+ #endif
-+
- if (retval < 0)
- {
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-018 b/files/bash44-018
deleted file mode 100644
--- a/files/bash44-018
+++ /dev/null
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-018
-
-Bug-Reported-by: Siteshwar Vashisht <svashisht@redhat.com>
-Bug-Reference-ID: <1341922391.30876471.1501250355579.JavaMail.zimbra@redhat.com>
-Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=1466737
-
-Bug-Description:
-
-Under certain circumstances (e.g., reading from /dev/zero), read(2) will not
-return -1 even when interrupted by a signal. The read builtin needs to check
-for signals in this case.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-20170622/builtins/read.def 2017-06-17 18:45:20.000000000 -0400
---- builtins/read.def 2017-06-30 11:09:26.000000000 -0400
-***************
-*** 611,615 ****
-
- CHECK_ALRM;
-!
- #if defined (READLINE)
- }
---- 611,615 ----
-
- CHECK_ALRM;
-! QUIT; /* in case we didn't call check_signals() */
- #if defined (READLINE)
- }
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11: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_ */
diff --git a/files/bash44-019 b/files/bash44-019
deleted file mode 100644
--- a/files/bash44-019
+++ /dev/null
@@ -1,50 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.4
-Patch-ID: bash44-019
-
-Bug-Reported-by: Kieran Grant <kieran.thehacker.grant@gmail.com>
-Bug-Reference-ID: <ec9071ae-efb1-9e09-5d03-e905daf2835c@gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2018-02/msg00002.html
-
-Bug-Description:
-
-With certain values for PS1, especially those that wrap onto three or more
-lines, readline will miscalculate the number of invisible characters,
-leading to crashes and core dumps.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.4.18/lib/readline/display.c 2016-07-28 14:49:33.000000000 -0400
---- lib/readline/display.c 2018-02-03 19:19:35.000000000 -0500
-***************
-*** 772,776 ****
- wadjust = (newlines == 0)
- ? prompt_invis_chars_first_line
-! : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line);
-
- /* fix from Darin Johnson <darin@acuson.com> for prompt string with
---- 788,794 ----
- wadjust = (newlines == 0)
- ? prompt_invis_chars_first_line
-! : ((newlines == prompt_lines_estimate)
-! ? (wrap_offset - prompt_invis_chars_first_line)
-! : 0);
-
- /* fix from Darin Johnson <darin@acuson.com> for prompt string with
-*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
---- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 18
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 19
-
- #endif /* _PATCHLEVEL_H_ */
diff --git a/files/bash50-001 b/files/bash50-001
new file mode 100644
--- /dev/null
+++ b/files/bash50-001
@@ -0,0 +1,166 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-001
+
+Bug-Reported-by: axel@freakout.de
+Bug-Reference-ID: <201901082050.x08KoShS006731@bongo.freakout.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00079.html
+
+Bug-Description:
+
+Under certain circumstances, the glob expansion code did not remove
+backslashes escaping characters in directory names (or portions of a
+pattern preceding a slash).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0/bashline.c 2018-11-27 13:20:16.000000000 -0500
+--- bashline.c 2019-01-16 16:06:03.000000000 -0500
+***************
+*** 232,235 ****
+--- 232,236 ----
+ static int bash_possible_command_completions __P((int, int));
+
++ static int completion_glob_pattern __P((char *));
+ static char *glob_complete_word __P((const char *, int));
+ static int bash_glob_completion_internal __P((int));
+***************
+*** 1742,1746 ****
+ /* This could be a globbing pattern, so try to expand it using pathname
+ expansion. */
+! if (!matches && glob_pattern_p (text))
+ {
+ matches = rl_completion_matches (text, glob_complete_word);
+--- 1743,1747 ----
+ /* This could be a globbing pattern, so try to expand it using pathname
+ expansion. */
+! if (!matches && completion_glob_pattern ((char *)text))
+ {
+ matches = rl_completion_matches (text, glob_complete_word);
+***************
+*** 1851,1855 ****
+ }
+
+! globpat = glob_pattern_p (hint_text);
+
+ /* If this is an absolute program name, do not check it against
+--- 1852,1856 ----
+ }
+
+! globpat = completion_glob_pattern ((char *)hint_text);
+
+ /* If this is an absolute program name, do not check it against
+***************
+*** 3714,3717 ****
+--- 3715,3773 ----
+ }
+
++ static int
++ completion_glob_pattern (string)
++ char *string;
++ {
++ register int c;
++ char *send;
++ int open;
++
++ DECLARE_MBSTATE;
++
++ open = 0;
++ send = string + strlen (string);
++
++ while (c = *string++)
++ {
++ switch (c)
++ {
++ case '?':
++ case '*':
++ return (1);
++
++ case '[':
++ open++;
++ continue;
++
++ case ']':
++ if (open)
++ return (1);
++ continue;
++
++ case '+':
++ case '@':
++ case '!':
++ if (*string == '(') /*)*/
++ return (1);
++ continue;
++
++ case '\\':
++ if (*string == 0)
++ return (0);
++ }
++
++ /* Advance one fewer byte than an entire multibyte character to
++ account for the auto-increment in the loop above. */
++ #ifdef HANDLE_MULTIBYTE
++ string--;
++ ADVANCE_CHAR_P (string, send - string);
++ string++;
++ #else
++ ADVANCE_CHAR_P (string, send - string);
++ #endif
++ }
++ return (0);
++ }
++
+ static char *globtext;
+ static char *globorig;
+***************
+*** 3878,3882 ****
+ }
+
+! if (t && glob_pattern_p (t) == 0)
+ rl_explicit_arg = 1; /* XXX - force glob_complete_word to append `*' */
+ FREE (t);
+--- 3934,3938 ----
+ }
+
+! if (t && completion_glob_pattern (t) == 0)
+ rl_explicit_arg = 1; /* XXX - force glob_complete_word to append `*' */
+ FREE (t);
+*** ../bash-5.0/lib/glob/glob_loop.c 2018-12-31 13:35:15.000000000 -0500
+--- lib/glob/glob_loop.c 2019-01-09 09:44:36.000000000 -0500
+***************
+*** 55,59 ****
+
+ case L('\\'):
+- #if 0
+ /* Don't let the pattern end in a backslash (GMATCH returns no match
+ if the pattern ends in a backslash anyway), but otherwise return 1,
+--- 55,58 ----
+***************
+*** 61,69 ****
+ and it can be removed. */
+ return (*p != L('\0'));
+- #else
+- /* The pattern may not end with a backslash. */
+- if (*p++ == L('\0'))
+- return 0;
+- #endif
+ }
+
+--- 60,63 ----
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-002 b/files/bash50-002
new file mode 100644
--- /dev/null
+++ b/files/bash50-002
@@ -0,0 +1,113 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-002
+
+Bug-Reported-by: Ante Peric <synthmeat@gmail.com>
+Bug-Reference-ID: <B7E3B567-2467-4F7B-B6B9-CA4E75A9C93F@gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00095.html
+
+Bug-Description:
+
+When an alias value ends with an unquoted literal tab (not part of a quoted
+string or comment), alias expansion cannot correctly detect the end of the
+alias value after expanding it.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0/parser.h 2018-12-28 19:11:18.000000000 -0500
+--- parser.h 2019-01-11 15:13:03.000000000 -0500
+***************
+*** 48,51 ****
+--- 48,52 ----
+ #define PST_REDIRLIST 0x080000 /* parsing a list of redirections preceding a simple command name */
+ #define PST_COMMENT 0x100000 /* parsing a shell comment; used by aliases */
++ #define PST_ENDALIAS 0x200000 /* just finished expanding and consuming an alias */
+
+ /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */
+*** ../bash-5.0/parse.y 2019-01-02 13:57:34.000000000 -0500
+--- parse.y 2019-01-14 08:23:31.000000000 -0500
+***************
+*** 2558,2567 ****
+ pushed_string_list->flags != PSH_DPAREN &&
+ (parser_state & PST_COMMENT) == 0 &&
+ shell_input_line_index > 0 &&
+! shell_input_line[shell_input_line_index-1] != ' ' &&
+ shell_input_line[shell_input_line_index-1] != '\n' &&
+ shellmeta (shell_input_line[shell_input_line_index-1]) == 0 &&
+ (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"'))
+ {
+ return ' '; /* END_ALIAS */
+ }
+--- 2558,2569 ----
+ pushed_string_list->flags != PSH_DPAREN &&
+ (parser_state & PST_COMMENT) == 0 &&
++ (parser_state & PST_ENDALIAS) == 0 && /* only once */
+ shell_input_line_index > 0 &&
+! shellblank (shell_input_line[shell_input_line_index-1]) == 0 &&
+ shell_input_line[shell_input_line_index-1] != '\n' &&
+ shellmeta (shell_input_line[shell_input_line_index-1]) == 0 &&
+ (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"'))
+ {
++ parser_state |= PST_ENDALIAS;
+ return ' '; /* END_ALIAS */
+ }
+***************
+*** 2572,2575 ****
+--- 2574,2578 ----
+ if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE)
+ {
++ parser_state &= ~PST_ENDALIAS;
+ pop_string ();
+ uc = shell_input_line[shell_input_line_index];
+*** ../bash-5.0/y.tab.c 2019-01-02 13:57:43.000000000 -0500
+--- y.tab.c 2019-01-14 08:39:23.000000000 -0500
+***************
+*** 4874,4883 ****
+ pushed_string_list->flags != PSH_DPAREN &&
+ (parser_state & PST_COMMENT) == 0 &&
+ shell_input_line_index > 0 &&
+! shell_input_line[shell_input_line_index-1] != ' ' &&
+ shell_input_line[shell_input_line_index-1] != '\n' &&
+ shellmeta (shell_input_line[shell_input_line_index-1]) == 0 &&
+ (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"'))
+ {
+ return ' '; /* END_ALIAS */
+ }
+--- 4874,4885 ----
+ pushed_string_list->flags != PSH_DPAREN &&
+ (parser_state & PST_COMMENT) == 0 &&
++ (parser_state & PST_ENDALIAS) == 0 && /* only once */
+ shell_input_line_index > 0 &&
+! shellblank (shell_input_line[shell_input_line_index-1]) == 0 &&
+ shell_input_line[shell_input_line_index-1] != '\n' &&
+ shellmeta (shell_input_line[shell_input_line_index-1]) == 0 &&
+ (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"'))
+ {
++ parser_state |= PST_ENDALIAS;
+ return ' '; /* END_ALIAS */
+ }
+***************
+*** 4888,4891 ****
+--- 4890,4894 ----
+ if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE)
+ {
++ parser_state &= ~PST_ENDALIAS;
+ pop_string ();
+ uc = shell_input_line[shell_input_line_index];
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-003 b/files/bash50-003
new file mode 100644
--- /dev/null
+++ b/files/bash50-003
@@ -0,0 +1,239 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-003
+
+Bug-Reported-by: Andrew Church <achurch+bash@achurch.org>
+Bug-Reference-ID: <5c534aa2.04371@msgid.achurch.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00276.html
+
+Bug-Description:
+
+There are several incompatibilities in how bash-5.0 processes pathname
+expansion (globbing) of filename arguments that have backslashes in the
+directory portion.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/lib/glob/glob_loop.c 2019-01-16 16:13:21.000000000 -0500
+--- lib/glob/glob_loop.c 2019-02-01 09:45:11.000000000 -0500
+***************
+*** 27,34 ****
+ register const GCHAR *p;
+ register GCHAR c;
+! int bopen;
+
+ p = pattern;
+! bopen = 0;
+
+ while ((c = *p++) != L('\0'))
+--- 27,34 ----
+ register const GCHAR *p;
+ register GCHAR c;
+! int bopen, bsquote;
+
+ p = pattern;
+! bopen = bsquote = 0;
+
+ while ((c = *p++) != L('\0'))
+***************
+*** 56,66 ****
+ case L('\\'):
+ /* Don't let the pattern end in a backslash (GMATCH returns no match
+! if the pattern ends in a backslash anyway), but otherwise return 1,
+! since the matching engine uses backslash as an escape character
+! and it can be removed. */
+! return (*p != L('\0'));
+ }
+
+! return 0;
+ }
+
+--- 56,75 ----
+ case L('\\'):
+ /* Don't let the pattern end in a backslash (GMATCH returns no match
+! if the pattern ends in a backslash anyway), but otherwise note that
+! we have seen this, since the matching engine uses backslash as an
+! escape character and it can be removed. We return 2 later if we
+! have seen only backslash-escaped characters, so interested callers
+! know they can shortcut and just dequote the pathname. */
+! if (*p != L('\0'))
+! {
+! p++;
+! bsquote = 1;
+! continue;
+! }
+! else /* (*p == L('\0')) */
+! return 0;
+ }
+
+! return bsquote ? 2 : 0;
+ }
+
+*** ../bash-5.0-patched/lib/glob/glob.h 2013-10-28 14:46:12.000000000 -0400
+--- lib/glob/glob.h 2019-03-07 11:06:47.000000000 -0500
+***************
+*** 31,34 ****
+--- 31,35 ----
+ #define GX_ADDCURDIR 0x200 /* internal -- add passed directory name */
+ #define GX_GLOBSTAR 0x400 /* turn on special handling of ** */
++ #define GX_RECURSE 0x800 /* internal -- glob_filename called recursively */
+
+ extern int glob_pattern_p __P((const char *));
+*** ../bash-5.0-patched/lib/glob/glob.c 2018-09-20 10:53:23.000000000 -0400
+--- lib/glob/glob.c 2019-03-07 14:23:43.000000000 -0500
+***************
+*** 1062,1066 ****
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+! int dflags;
+
+ result = (char **) malloc (sizeof (char *));
+--- 1078,1082 ----
+ unsigned int directory_len;
+ int free_dirname; /* flag */
+! int dflags, hasglob;
+
+ result = (char **) malloc (sizeof (char *));
+***************
+*** 1111,1117 ****
+ }
+
+ /* If directory_name contains globbing characters, then we
+! have to expand the previous levels. Just recurse. */
+! if (directory_len > 0 && glob_pattern_p (directory_name))
+ {
+ char **directories, *d, *p;
+--- 1127,1136 ----
+ }
+
++ hasglob = 0;
+ /* If directory_name contains globbing characters, then we
+! have to expand the previous levels. Just recurse.
+! If glob_pattern_p returns != [0,1] we have a pattern that has backslash
+! quotes but no unquoted glob pattern characters. We dequote it below. */
+! if (directory_len > 0 && (hasglob = glob_pattern_p (directory_name)) == 1)
+ {
+ char **directories, *d, *p;
+***************
+*** 1176,1180 ****
+ d[directory_len - 1] = '\0';
+
+! directories = glob_filename (d, dflags);
+
+ if (free_dirname)
+--- 1195,1199 ----
+ d[directory_len - 1] = '\0';
+
+! directories = glob_filename (d, dflags|GX_RECURSE);
+
+ if (free_dirname)
+***************
+*** 1333,1336 ****
+--- 1352,1369 ----
+ return (NULL);
+ }
++ /* If we have a directory name with quoted characters, and we are
++ being called recursively to glob the directory portion of a pathname,
++ we need to dequote the directory name before returning it so the
++ caller can read the directory */
++ if (directory_len > 0 && hasglob == 2 && (flags & GX_RECURSE) != 0)
++ {
++ dequote_pathname (directory_name);
++ directory_len = strlen (directory_name);
++ }
++
++ /* We could check whether or not the dequoted directory_name is a
++ directory and return it here, returning the original directory_name
++ if not, but we don't do that yet. I'm not sure it matters. */
++
+ /* Handle GX_MARKDIRS here. */
+ result[0] = (char *) malloc (directory_len + 1);
+*** ../bash-5.0-patched/pathexp.c 2018-04-29 17:44:48.000000000 -0400
+--- pathexp.c 2019-01-31 20:19:41.000000000 -0500
+***************
+*** 66,74 ****
+ register int c;
+ char *send;
+! int open;
+
+ DECLARE_MBSTATE;
+
+! open = 0;
+ send = string + strlen (string);
+
+--- 66,74 ----
+ register int c;
+ char *send;
+! int open, bsquote;
+
+ DECLARE_MBSTATE;
+
+! open = bsquote = 0;
+ send = string + strlen (string);
+
+***************
+*** 101,105 ****
+ globbing. */
+ case '\\':
+! return (*string != 0);
+
+ case CTLESC:
+--- 101,112 ----
+ globbing. */
+ case '\\':
+! if (*string != '\0' && *string != '/')
+! {
+! bsquote = 1;
+! string++;
+! continue;
+! }
+! else if (*string == 0)
+! return (0);
+
+ case CTLESC:
+***************
+*** 118,122 ****
+ #endif
+ }
+! return (0);
+ }
+
+--- 125,130 ----
+ #endif
+ }
+!
+! return (bsquote ? 2 : 0);
+ }
+
+*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500
+--- bashline.c 2019-02-22 09:29:08.000000000 -0500
+***************
+*** 3753,3757 ****
+
+ case '\\':
+! if (*string == 0)
+ return (0);
+ }
+--- 3766,3770 ----
+
+ case '\\':
+! if (*string++ == 0)
+ return (0);
+ }
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-004 b/files/bash50-004
new file mode 100644
--- /dev/null
+++ b/files/bash50-004
@@ -0,0 +1,53 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-004
+
+Bug-Reported-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Bug-Reference-ID: <87lg0g8aiw.fsf@fifthhorseman.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-04/msg00076.html
+
+Bug-Description:
+
+In bash-5.0, the `wait' builtin without arguments waits for all children of the
+shell. This includes children it `inherited' at shell invocation time. This
+patch modifies the behavior to not wait for these inherited children, some
+of which might be long-lived.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/jobs.c 2018-12-06 11:44:34.000000000 -0500
+--- jobs.c 2019-04-12 15:15:10.000000000 -0400
+***************
+*** 2489,2496 ****
+ wait_procsubs ();
+ reap_procsubs ();
+! #if 1
+ /* We don't want to wait indefinitely if we have stopped children. */
+- /* XXX - should add a loop that goes through the list of process
+- substitutions and waits for each proc in turn before this code. */
+ if (any_stopped == 0)
+ {
+--- 2490,2495 ----
+ wait_procsubs ();
+ reap_procsubs ();
+! #if 0
+ /* We don't want to wait indefinitely if we have stopped children. */
+ if (any_stopped == 0)
+ {
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-005 b/files/bash50-005
new file mode 100644
--- /dev/null
+++ b/files/bash50-005
@@ -0,0 +1,110 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-005
+
+Bug-Reported-by: Brad Spencer <bspencer@blackberry.com>
+Bug-Reference-ID: <1b993ff2-ce4f-662a-6be4-393457362e47@blackberry.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00250.html
+
+Bug-Description:
+
+In certain cases, bash optimizes out a fork() call too early and prevents
+traps from running.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/command.h 2018-07-20 21:16:31.000000000 -0400
+--- command.h 2019-02-20 11:09:36.000000000 -0500
+***************
+*** 187,190 ****
+--- 188,192 ----
+ #define CMD_LASTPIPE 0x2000
+ #define CMD_STDPATH 0x4000 /* use standard path for command lookup */
++ #define CMD_TRY_OPTIMIZING 0x8000 /* try to optimize this simple command */
+
+ /* What a command looks like. */
+*** ../bash-5.0-patched/builtins/evalstring.c 2018-12-26 11:19:21.000000000 -0500
+--- builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500
+***************
+*** 101,104 ****
+--- 101,113 ----
+ }
+
++ int
++ can_optimize_connection (command)
++ COMMAND *command;
++ {
++ return (*bash_input.location.string == '\0' &&
++ (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') &&
++ command->value.Connection->second->type == cm_simple);
++ }
++
+ void
+ optimize_fork (command)
+***************
+*** 106,110 ****
+ {
+ if (command->type == cm_connection &&
+! (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR) &&
+ should_suppress_fork (command->value.Connection->second))
+ {
+--- 115,120 ----
+ {
+ if (command->type == cm_connection &&
+! (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') &&
+! (command->value.Connection->second->flags & CMD_TRY_OPTIMIZING) &&
+ should_suppress_fork (command->value.Connection->second))
+ {
+***************
+*** 413,418 ****
+ command->value.Simple->flags |= CMD_NO_FORK;
+ }
+! else if (command->type == cm_connection)
+! optimize_fork (command);
+ #endif /* ONESHOT */
+
+--- 423,438 ----
+ command->value.Simple->flags |= CMD_NO_FORK;
+ }
+!
+! /* Can't optimize forks out here execept for simple commands.
+! This knows that the parser sets up commands as left-side heavy
+! (&& and || are left-associative) and after the single parse,
+! if we are at the end of the command string, the last in a
+! series of connection commands is
+! command->value.Connection->second. */
+! else if (command->type == cm_connection && can_optimize_connection (command))
+! {
+! command->value.Connection->second->flags |= CMD_TRY_OPTIMIZING;
+! command->value.Connection->second->value.Simple->flags |= CMD_TRY_OPTIMIZING;
+! }
+ #endif /* ONESHOT */
+
+*** ../bash-5.0-patched/execute_cmd.c 2018-12-05 09:05:14.000000000 -0500
+--- execute_cmd.c 2019-01-25 15:59:00.000000000 -0500
+***************
+*** 2768,2771 ****
+--- 2768,2773 ----
+ (exec_result != EXECUTION_SUCCESS)))
+ {
++ optimize_fork (command);
++
+ second = command->value.Connection->second;
+ if (ignore_return && second)
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-006 b/files/bash50-006
new file mode 100644
--- /dev/null
+++ b/files/bash50-006
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-006
+
+Bug-Reported-by: Tomas Mozes <hydrapolic@gmail.com>
+Bug-Reference-ID: <CAG6MAzQumLU2vhnmr1UrYAUQAFW5Yo8hfM_sEibX9RJQWJkRrA@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-03/msg00037.html
+
+Bug-Description:
+
+Bash-5.0 did not build successfully if SYSLOG_HISTORY was defined without
+also defining SYSLOG_SHOPT.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/builtins/shopt.def 2018-10-05 14:49:02.000000000 -0400
+--- builtins/shopt.def 2019-01-23 09:55:22.000000000 -0500
+***************
+*** 123,127 ****
+ #endif
+
+! #if defined (SYSLOG_HISTORY) && defined (SYSLOG_SHOPT)
+ extern int syslog_history;
+ #endif
+--- 123,127 ----
+ #endif
+
+! #if defined (SYSLOG_HISTORY)
+ extern int syslog_history;
+ #endif
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/bash50-007 b/files/bash50-007
new file mode 100644
--- /dev/null
+++ b/files/bash50-007
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-007
+
+Bug-Reported-by: Grisha Levit <grishalevit@gmail.com>
+Bug-Reference-ID: <CAMu=BroHapG1AS3xB5SQaCX2XKu=-E2Ob9uW6LNuHvd=YohrDw@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-02/msg00067.html
+
+Bug-Description:
+
+Running `exec' when job control was disabled, even temporarily, but after it
+had been initialized, could leave the terminal in the wrong process group for
+the executed process.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.0-patched/jobs.c 2018-12-06 11:44:34.000000000 -0500
+--- jobs.c 2019-04-12 15:15:10.000000000 -0400
+***************
+*** 4838,4850 ****
+ {
+ if (job_control)
+! {
+! terminate_stopped_jobs ();
+
+! if (original_pgrp >= 0)
+! give_terminal_to (original_pgrp, 1);
+! }
+
+! if (original_pgrp >= 0)
+! setpgid (0, original_pgrp);
+ }
+
+--- 4838,4848 ----
+ {
+ if (job_control)
+! terminate_stopped_jobs ();
+
+! if (original_pgrp >= 0 && terminal_pgrp != original_pgrp)
+! give_terminal_to (original_pgrp, 1);
+
+! if (original_pgrp >= 0 && setpgid (0, original_pgrp) == 0)
+! shell_pgrp = original_pgrp;
+ }
+
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 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/files/series b/files/series
--- a/files/series
+++ b/files/series
@@ -1,21 +1,9 @@
-bash44-001 -p0
-bash44-002 -p0
-bash44-003 -p0
-bash44-004 -p0
-bash44-005 -p0
-bash44-006 -p0
-bash44-007 -p0
-bash44-008 -p0
-bash44-009 -p0
-bash44-010 -p0
-bash44-011 -p0
-bash44-012 -p0
-bash44-013 -p0
-bash44-014 -p0
-bash44-015 -p0
-bash44-016 -p0
-bash44-017 -p0
-bash44-018 -p0
-bash44-019 -p0
+bash50-001 -p0
+bash50-002 -p0
+bash50-003 -p0
+bash50-004 -p0
+bash50-005 -p0
+bash50-006 -p0
+bash50-007 -p0
0001-Use-a-stateless-profile-by-default.patch
nodlopen.patch
diff --git a/package.yml b/package.yml
--- a/package.yml
+++ b/package.yml
@@ -1,8 +1,8 @@
name : bash
-version : 4.4.019
-release : 52
+version : 5.0.7
+release : 53
source :
- - https://ftp.gnu.org/gnu/bash/bash-4.4.tar.gz : d86b3392c1202e8ff5a423b302e6284db7f8f435ea9f39b5b1b20fd3ac36dfcb
+ - https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz : b4a80f2ac66170b2913efbfb9f2594f1f76c7b1afd11f799e22035d63077fb4d
license :
- GPL-3.0
component :
diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml
--- a/pspec_x86_64.xml
+++ b/pspec_x86_64.xml
@@ -2,15 +2,15 @@
<Source>
<Name>bash</Name>
<Packager>
- <Name>Ikey Doherty</Name>
- <Email>ikey@solus-project.com</Email>
+ <Name>Alexander J. Koskovich</Name>
+ <Email>zvnexus@outlook.com</Email>
</Packager>
<License>GPL-3.0</License>
<PartOf>system.base</PartOf>
<Summary xml:lang="en">bash (sh-compatible shell)</Summary>
<Description xml:lang="en">bash (sh-compatible shell) The GNU Bourne-Again SHell. Bash is a sh-compatible command interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). Bash is ultimately intended to be a conformant implementation of the IEEE Posix Shell and Tools specification (IEEE Working Group 1003.2). Bash must be present for the system to boot properly.
</Description>
- <Archive type="binary" sha1sum="79eb0752a961b8e0d15c77d298c97498fbc89c5a">https://solus-project.com/sources/README.Solus</Archive>
+ <Archive type="binary" sha1sum="79eb0752a961b8e0d15c77d298c97498fbc89c5a">https://getsol.us/sources/README.Solus</Archive>
</Source>
<Package>
<Name>bash</Name>
@@ -19,9 +19,10 @@
</Description>
<PartOf>system.base</PartOf>
<Files>
- <Path fileType="executable">/bin</Path>
+ <Path fileType="executable">/bin/bash</Path>
+ <Path fileType="executable">/bin/sh</Path>
<Path fileType="config">/etc/profile</Path>
- <Path fileType="executable">/usr/bin</Path>
+ <Path fileType="executable">/usr/bin/bashbug</Path>
<Path fileType="data">/usr/share/defaults/etc/profile</Path>
<Path fileType="data">/usr/share/defaults/etc/profile.d/10-path.sh</Path>
<Path fileType="data">/usr/share/defaults/etc/profile.d/10-xdg.sh</Path>
@@ -30,10 +31,57 @@
<Path fileType="data">/usr/share/defaults/etc/profile.d/50-prompt.sh</Path>
<Path fileType="data">/usr/share/defaults/etc/profile.d/50-readline.sh</Path>
<Path fileType="data">/usr/share/defaults/etc/profile.d/50-umask.sh</Path>
- <Path fileType="doc">/usr/share/doc</Path>
- <Path fileType="info">/usr/share/info</Path>
- <Path fileType="localedata">/usr/share/locale</Path>
- <Path fileType="man">/usr/share/man</Path>
+ <Path fileType="doc">/usr/share/doc/bash/CHANGES</Path>
+ <Path fileType="doc">/usr/share/doc/bash/COMPAT</Path>
+ <Path fileType="doc">/usr/share/doc/bash/FAQ</Path>
+ <Path fileType="doc">/usr/share/doc/bash/INTRO</Path>
+ <Path fileType="doc">/usr/share/doc/bash/NEWS</Path>
+ <Path fileType="doc">/usr/share/doc/bash/POSIX</Path>
+ <Path fileType="doc">/usr/share/doc/bash/RBASH</Path>
+ <Path fileType="doc">/usr/share/doc/bash/README</Path>
+ <Path fileType="doc">/usr/share/doc/bash/bash.html</Path>
+ <Path fileType="doc">/usr/share/doc/bash/bashref.html</Path>
+ <Path fileType="info">/usr/share/info/bash.info</Path>
+ <Path fileType="localedata">/usr/share/locale/af/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/bg/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/ca/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/cs/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/da/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/de/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/el/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/en@quot/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/eo/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/es/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/et/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/fi/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/fr/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/ga/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/gl/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/hr/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/hu/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/id/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/it/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/ja/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/lt/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/nb/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/nl/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/pl/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/pt/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/ro/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/ru/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/sk/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/sl/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/sr/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/sv/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/tr/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/uk/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/vi/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/zh_CN/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="localedata">/usr/share/locale/zh_TW/LC_MESSAGES/bash.mo</Path>
+ <Path fileType="man">/usr/share/man/man1/bash.1</Path>
+ <Path fileType="man">/usr/share/man/man1/bashbug.1</Path>
</Files>
</Package>
<Package>
@@ -43,19 +91,19 @@
</Description>
<PartOf>system.boot</PartOf>
<RuntimeDependencies>
- <Dependency releaseFrom="52">bash</Dependency>
+ <Dependency releaseFrom="53">bash</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/bin/bash.recovery</Path>
</Files>
</Package>
<History>
- <Update release="52">
- <Date>2018-05-23</Date>
- <Version>4.4.019</Version>
+ <Update release="53">
+ <Date>2019-04-23</Date>
+ <Version>5.0.7</Version>
<Comment>Packaging update</Comment>
- <Name>Ikey Doherty</Name>
- <Email>ikey@solus-project.com</Email>
+ <Name>Alexander J. Koskovich</Name>
+ <Email>zvnexus@outlook.com</Email>
</Update>
</History>
</PISI>

File Metadata

Mime Type
text/plain
Expires
Thu, Aug 10, 7:57 PM (1 d, 4 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5820914
Default Alt Text
D6102.id.diff (77 KB)

Event Timeline