[Buildroot] [PATCH 1/2] package/bash: add upstream patches
Yann E. MORIN
yann.morin.1998 at free.fr
Sat Feb 22 18:40:27 UTC 2020
Fabrice, All,
On 2020-02-22 10:50 +0100, Fabrice Fontaine spake thusly:
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Both applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> package/bash/0012-bash50-012.patch | 68 +++++++++++++++++++++++++
> package/bash/0013-bash50-013.patch | 77 ++++++++++++++++++++++++++++
> package/bash/0014-bash50-014.patch | 56 ++++++++++++++++++++
> package/bash/0015-bash50-015.patch | 82 ++++++++++++++++++++++++++++++
> package/bash/0016-bash50-016.patch | 62 ++++++++++++++++++++++
> 5 files changed, 345 insertions(+)
> create mode 100644 package/bash/0012-bash50-012.patch
> create mode 100644 package/bash/0013-bash50-013.patch
> create mode 100644 package/bash/0014-bash50-014.patch
> create mode 100644 package/bash/0015-bash50-015.patch
> create mode 100644 package/bash/0016-bash50-016.patch
>
> diff --git a/package/bash/0012-bash50-012.patch b/package/bash/0012-bash50-012.patch
> new file mode 100644
> index 0000000000..d634932ee1
> --- /dev/null
> +++ b/package/bash/0012-bash50-012.patch
> @@ -0,0 +1,68 @@
> +From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-012
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +
> + BASH PATCH REPORT
> + =================
> +
> +Bash-Release: 5.0
> +Patch-ID: bash50-012
> +
> +Bug-Reported-by: lessbug at qq.com
> +Bug-Reference-ID: <tencent_6AA531D9A5CC4121D86BD5CDA2E0DA98C605 at qq.com>
> +Bug-Reference-URL:
> +
> +Bug-Description:
> +
> +When using previous-history to go back beyond the beginning of the history list,
> +it's possible to move to an incorrect partial line.
> +
> +Patch (apply with `patch -p0'):
> +
> +*** ../bash-5.0-patched/lib/readline/misc.c 2017-07-07 17:30:12.000000000 -0400
> +--- b/lib/readline/misc.c 2019-05-16 11:43:46.000000000 -0400
> +***************
> +*** 577,580 ****
> +--- 590,594 ----
> + {
> + HIST_ENTRY *old_temp, *temp;
> ++ int had_saved_line;
> +
> + if (count < 0)
> +***************
> +*** 589,592 ****
> +--- 603,607 ----
> +
> + /* If we don't have a line saved, then save this one. */
> ++ had_saved_line = _rl_saved_line_for_history != 0;
> + rl_maybe_save_line ();
> +
> +***************
> +*** 612,616 ****
> + if (temp == 0)
> + {
> +! rl_maybe_unsave_line ();
> + rl_ding ();
> + }
> +--- 627,632 ----
> + if (temp == 0)
> + {
> +! if (had_saved_line == 0)
> +! _rl_free_saved_history_line ();
> + rl_ding ();
> + }
> +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
> +--- b/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/package/bash/0013-bash50-013.patch b/package/bash/0013-bash50-013.patch
> new file mode 100644
> index 0000000000..1c99f5c8c0
> --- /dev/null
> +++ b/package/bash/0013-bash50-013.patch
> @@ -0,0 +1,77 @@
> +From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-013
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +
> + BASH PATCH REPORT
> + =================
> +
> +Bash-Release: 5.0
> +Patch-ID: bash50-013
> +
> +Bug-Reported-by: HIROSE Masaaki <hirose31 at gmail.com>
> +Bug-Reference-ID: <CAGSOfA-RqiTe=+GsXsDKyZrrMWH4bDbXgMVVegMa6OjqC5xbnQ at mail.gmail.com>
> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00038.html
> +
> +Bug-Description:
> +
> +Reading history entries with timestamps can result in history entries joined
> +by linefeeds.
> +
> +Patch (apply with `patch -p0'):
> +
> +*** ../bash-5.0-patched/lib/readline/histfile.c 2018-06-11 09:14:52.000000000 -0400
> +--- b/lib/readline/histfile.c 2019-05-16 15:55:57.000000000 -0400
> +***************
> +*** 370,376 ****
> +
> + has_timestamps = HIST_TIMESTAMP_START (buffer);
> +! history_multiline_entries += has_timestamps && history_write_timestamps;
> +
> + /* Skip lines until we are at FROM. */
> + for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
> + if (*line_end == '\n')
> +--- 370,378 ----
> +
> + has_timestamps = HIST_TIMESTAMP_START (buffer);
> +! history_multiline_entries += has_timestamps && history_write_timestamps;
> +
> + /* Skip lines until we are at FROM. */
> ++ if (has_timestamps)
> ++ last_ts = buffer;
> + for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
> + if (*line_end == '\n')
> +***************
> +*** 381,385 ****
> +--- 383,398 ----
> + if (HIST_TIMESTAMP_START(p) == 0)
> + current_line++;
> ++ else
> ++ last_ts = p;
> + line_start = p;
> ++ /* If we are at the last line (current_line == from) but we have
> ++ timestamps (has_timestamps), then line_start points to the
> ++ text of the last command, and we need to skip to its end. */
> ++ if (current_line >= from && has_timestamps)
> ++ {
> ++ for (line_end = p; line_end < bufend && *line_end != '\n'; line_end++)
> ++ ;
> ++ line_start = (*line_end == '\n') ? line_end + 1 : line_end;
> ++ }
> + }
> +
> +
> +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
> +--- b/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/package/bash/0014-bash50-014.patch b/package/bash/0014-bash50-014.patch
> new file mode 100644
> index 0000000000..2aadbda880
> --- /dev/null
> +++ b/package/bash/0014-bash50-014.patch
> @@ -0,0 +1,56 @@
> +From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-014
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +
> + BASH PATCH REPORT
> + =================
> +
> +Bash-Release: 5.0
> +Patch-ID: bash50-014
> +
> +Bug-Reported-by: Johannes Hielscher <jhielscher at posteo.de>
> +Bug-Reference-ID: <20190208205048.77c25a83 at hordevm>
> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-02/msg00032.html
> +
> +Bug-Description:
> +
> +If the current line is empty, using the emacs C-xC-e binding to enter the
> +editor will edit the previous command instead of the current (empty) one.
> +
> +Patch (apply with `patch -p0'):
> +
> +*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500
> +--- b/bashline.c 2019-02-11 11:18:57.000000000 -0500
> +***************
> +*** 962,970 ****
> + finished with the command, so we should not ignore the last command */
> + using_history ();
> +! if (rl_line_buffer[0])
> +! {
> +! current_command_line_count++; /* for rl_newline above */
> +! bash_add_history (rl_line_buffer);
> +! }
> + current_command_line_count = 0; /* for dummy history entry */
> + bash_add_history ("");
> +--- 965,970 ----
> + finished with the command, so we should not ignore the last command */
> + using_history ();
> +! current_command_line_count++; /* for rl_newline above */
> +! bash_add_history (rl_line_buffer);
> + current_command_line_count = 0; /* for dummy history entry */
> + bash_add_history ("");
> +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
> +--- b/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/package/bash/0015-bash50-015.patch b/package/bash/0015-bash50-015.patch
> new file mode 100644
> index 0000000000..d927f41af8
> --- /dev/null
> +++ b/package/bash/0015-bash50-015.patch
> @@ -0,0 +1,82 @@
> +From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-015
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +
> + BASH PATCH REPORT
> + =================
> +
> +Bash-Release: 5.0
> +Patch-ID: bash50-015
> +
> +Bug-Reported-by: Yu Kou <ckyoog at gmail.com>
> +Bug-Reference-ID: <CAAqoF9Ko3nAShJXGzucafs-ByUagzZ4nbQonwEkwC7s9UqfWKw at mail.gmail.com>
> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00032.html
> +
> +Bug-Description:
> +
> +If alias expansion is enabled when processing the command argument to the
> +`-c' option, an alias is defined in that command, and the command ends with
> +the invocation of that alias, the shell's command parser can prematurely
> +terminate before the entire command is executed.
> +
> +Patch (apply with `patch -p0'):
> +
> +*** ../bash-20190426/builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500
> +--- b/builtins/evalstring.c 2019-05-15 14:19:36.000000000 -0400
> +***************
> +*** 92,95 ****
> +--- 92,96 ----
> + running_trap == 0 &&
> + *bash_input.location.string == '\0' &&
> ++ parser_expanding_alias () == 0 &&
> + command->type == cm_simple &&
> + signal_is_trapped (EXIT_TRAP) == 0 &&
> +***************
> +*** 106,109 ****
> +--- 107,111 ----
> + {
> + return (*bash_input.location.string == '\0' &&
> ++ parser_expanding_alias () == 0 &&
> + (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') &&
> + command->value.Connection->second->type == cm_simple);
> +***************
> +*** 291,295 ****
> + with_input_from_string (string, from_file);
> + clear_shell_input_line ();
> +! while (*(bash_input.location.string))
> + {
> + command = (COMMAND *)NULL;
> +--- 293,297 ----
> + with_input_from_string (string, from_file);
> + clear_shell_input_line ();
> +! while (*(bash_input.location.string) || parser_expanding_alias ())
> + {
> + command = (COMMAND *)NULL;
> +***************
> +*** 546,550 ****
> +
> + with_input_from_string (string, from_file);
> +! while (*(bash_input.location.string))
> + {
> + command = (COMMAND *)NULL;
> +--- 548,552 ----
> +
> + with_input_from_string (string, from_file);
> +! while (*(bash_input.location.string)) /* XXX - parser_expanding_alias () ? */
> + {
> + command = (COMMAND *)NULL;
> +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
> +--- b/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/package/bash/0016-bash50-016.patch b/package/bash/0016-bash50-016.patch
> new file mode 100644
> index 0000000000..8dec1fb34c
> --- /dev/null
> +++ b/package/bash/0016-bash50-016.patch
> @@ -0,0 +1,62 @@
> +From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-016
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +
> + BASH PATCH REPORT
> + =================
> +
> +Bash-Release: 5.0
> +Patch-ID: bash50-016
> +
> +Bug-Reported-by: sunnycemetery at gmail.com
> +Bug-Reference-ID: <20190316041534.GB22884 at midnight>
> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-03/msg00070.html
> +
> +Bug-Description:
> +
> +Bash waits too long to reap /dev/fd process substitutions used as redirections
> +with loops and group commands, which can lead to file descriptor exhaustion.
> +
> +Patch (apply with `patch -p0'):
> +
> +*** ../bash-5.0-patched/execute_cmd.c 2019-04-19 15:46:36.000000000 -0400
> +--- b/execute_cmd.c 2019-07-01 16:45:49.000000000 -0400
> +***************
> +*** 1104,1107 ****
> +--- 1085,1104 ----
> + discard_unwind_frame ("internal_fifos");
> + }
> ++ # if defined (HAVE_DEV_FD)
> ++ /* Reap process substitutions at the end of loops */
> ++ switch (command->type)
> ++ {
> ++ case cm_while:
> ++ case cm_until:
> ++ case cm_for:
> ++ case cm_group:
> ++ # if defined (ARITH_FOR_COMMAND)
> ++ case cm_arith_for:
> ++ # endif
> ++ reap_procsubs ();
> ++ default:
> ++ break;
> ++ }
> ++ # endif /* HAVE_DEV_FD */
> + #endif
> +
> +
> +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
> +--- b/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_ */
> --
> 2.25.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list