From 37439abe8d936644d6fdd623403ecc0e8464b810 Mon Sep 17 00:00:00 2001 From: Rmys Date: Sun, 19 Nov 2023 20:36:48 +0300 Subject: [PATCH] readline-8.2.7 --- .../base/readline/files/readline63-001.patch | 43 -------- .../base/readline/files/readline63-002.patch | 44 -------- .../base/readline/files/readline63-003.patch | 47 -------- .../base/readline/files/readline70-001.patch | 57 ---------- .../base/readline/files/readline70-002.patch | 103 ------------------ .../base/readline/files/readline70-003.patch | 40 ------- .../base/readline/files/readline70-004.patch | 47 -------- .../base/readline/files/readline70-005.patch | 58 ---------- .../base/readline/files/readline80-001.patch | 38 ------- .../base/readline/files/readline80-002.patch | 60 ---------- .../base/readline/files/readline80-003.patch | 69 ------------ .../base/readline/files/readline80-004.patch | 47 -------- .../base/readline/files/readline82-002.patch | 48 ++++++++ .../base/readline/files/readline82-003.patch | 43 ++++++++ .../base/readline/files/readline82-004.patch | 65 +++++++++++ .../base/readline/files/readline82-005.patch | 50 +++++++++ .../base/readline/files/readline82-006.patch | 99 +++++++++++++++++ .../base/readline/files/readline82-007.patch | 48 ++++++++ system/base/readline/pspec.xml | 13 +++ 19 files changed, 366 insertions(+), 653 deletions(-) delete mode 100644 system/base/readline/files/readline63-001.patch delete mode 100644 system/base/readline/files/readline63-002.patch delete mode 100644 system/base/readline/files/readline63-003.patch delete mode 100644 system/base/readline/files/readline70-001.patch delete mode 100644 system/base/readline/files/readline70-002.patch delete mode 100644 system/base/readline/files/readline70-003.patch delete mode 100644 system/base/readline/files/readline70-004.patch delete mode 100644 system/base/readline/files/readline70-005.patch delete mode 100644 system/base/readline/files/readline80-001.patch delete mode 100644 system/base/readline/files/readline80-002.patch delete mode 100644 system/base/readline/files/readline80-003.patch delete mode 100644 system/base/readline/files/readline80-004.patch create mode 100644 system/base/readline/files/readline82-002.patch create mode 100644 system/base/readline/files/readline82-003.patch create mode 100644 system/base/readline/files/readline82-004.patch create mode 100644 system/base/readline/files/readline82-005.patch create mode 100644 system/base/readline/files/readline82-006.patch create mode 100644 system/base/readline/files/readline82-007.patch diff --git a/system/base/readline/files/readline63-001.patch b/system/base/readline/files/readline63-001.patch deleted file mode 100644 index bae6a2f5..00000000 --- a/system/base/readline/files/readline63-001.patch +++ /dev/null @@ -1,43 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-001 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 5 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 1 diff --git a/system/base/readline/files/readline63-002.patch b/system/base/readline/files/readline63-002.patch deleted file mode 100644 index 0e79f13f..00000000 --- a/system/base/readline/files/readline63-002.patch +++ /dev/null @@ -1,44 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-002 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff --git a/system/base/readline/files/readline63-003.patch b/system/base/readline/files/readline63-003.patch deleted file mode 100644 index d2cad94f..00000000 --- a/system/base/readline/files/readline63-003.patch +++ /dev/null @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-003 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are debugging functions in the readline release that are theoretically -exploitable as security problems. They are not public functions, but have -global linkage. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/util.c 2013-09-02 13:36:12.000000000 -0400 ---- util.c 2014-03-20 10:25:53.000000000 -0400 -*************** -*** 477,480 **** ---- 479,483 ---- - } - -+ #if defined (DEBUG) - #if defined (USE_VARARGS) - static FILE *_rl_tracefp; -*************** -*** 539,542 **** ---- 542,546 ---- - } - #endif -+ #endif /* DEBUG */ - - -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff --git a/system/base/readline/files/readline70-001.patch b/system/base/readline/files/readline70-001.patch deleted file mode 100644 index 437a4401..00000000 --- a/system/base/readline/files/readline70-001.patch +++ /dev/null @@ -1,57 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 7.0 -Patch-ID: readline70-001 - -Bug-Reported-by: Sean Zha -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00107.html - -Bug-Description: - -Readline-7.0 changed the way the history list is initially allocated to reduce -the number of reallocations and copies. Users who set the readline -history-size variable to a very large number to essentially unlimit the size -of the history list will get memory allocation errors - -Patch (apply with `patch -p0'): - -*** ../readline-7.0/history.c 2015-12-28 13:50:31.000000000 -0500 ---- 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; - -*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 0 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 1 diff --git a/system/base/readline/files/readline70-002.patch b/system/base/readline/files/readline70-002.patch deleted file mode 100644 index ac76daec..00000000 --- a/system/base/readline/files/readline70-002.patch +++ /dev/null @@ -1,103 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 7.0 -Patch-ID: readline70-002 - -Bug-Reported-by: Hong Cho -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2016-12/msg00002.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'): - -*** ../readline-7.0-patched/history.c 2016-11-11 13:42:49.000000000 -0500 ---- 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; - } - -*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff --git a/system/base/readline/files/readline70-003.patch b/system/base/readline/files/readline70-003.patch deleted file mode 100644 index a19cae6e..00000000 --- a/system/base/readline/files/readline70-003.patch +++ /dev/null @@ -1,40 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 7.0 -Patch-ID: readline70-003 - -Bug-Reported-by: Frédéric Brière -Bug-Reference-ID: <20170120180724.7ydq7fb2hsp366dj@fabul.fbriere.net> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2017-01/msg00002.html - -Bug-Description: - -Readline-7.0 uses pselect(2) to allow readline to handle signals that do not -interrupt read(2), such as SIGALRM, before reading another character. The -signal mask used in the pselect call did not take into account signals the -calling application blocked before calling readline(). - -Patch (apply with `patch -p0'): - -*** ../readline-7.0-patched/input.c 2016-08-30 10:21:47.000000000 -0400 ---- input.c 2017-01-23 10:21:56.000000000 -0500 -*************** -*** 514,517 **** ---- 514,518 ---- - #if defined (HAVE_PSELECT) - sigemptyset (&empty_set); -+ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &empty_set); - FD_ZERO (&readfds); - FD_SET (fileno (stream), &readfds); -*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff --git a/system/base/readline/files/readline70-004.patch b/system/base/readline/files/readline70-004.patch deleted file mode 100644 index e2f68060..00000000 --- a/system/base/readline/files/readline70-004.patch +++ /dev/null @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 7.0 -Patch-ID: readline70-004 - -Bug-Reported-by: Kieran Grant -Bug-Reference-ID: -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'): - -*** ../readline-7.0.3/display.c 2016-07-28 14:49:33.000000000 -0400 ---- 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 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 for prompt string with -*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 3 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 4 - diff --git a/system/base/readline/files/readline70-005.patch b/system/base/readline/files/readline70-005.patch deleted file mode 100644 index 99753224..00000000 --- a/system/base/readline/files/readline70-005.patch +++ /dev/null @@ -1,58 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 7.0 -Patch-ID: readline70-005 - -Bug-Reported-by: Nuzhna Pomoshch -Bug-Reference-ID: <1317167476.1492079.1495999776464@mail.yahoo.com> -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2017-05/msg00005.html - -Bug-Description: - -There are cases where a failing readline command (e.g., delete-char at the end -of a line) can cause a multi-character key sequence to `back up' and attempt -to re-read some of the characters in the sequence. - -Patch (apply with `patch -p0'): - -*** ../readline-7.0/readline.c 2016-04-20 15:53:52.000000000 -0400 ---- readline.c 2018-05-26 17:19:00.000000000 -0400 -*************** -*** 1058,1062 **** - r = _rl_dispatch (ANYOTHERKEY, m); - } -! else if (r && map[ANYOTHERKEY].function) - { - /* We didn't match (r is probably -1), so return something to ---- 1056,1060 ---- - r = _rl_dispatch (ANYOTHERKEY, m); - } -! else if (r < 0 && map[ANYOTHERKEY].function) - { - /* We didn't match (r is probably -1), so return something to -*************** -*** 1070,1074 **** - return -2; - } -! else if (r && got_subseq) - { - /* OK, back up the chain. */ ---- 1068,1072 ---- - return -2; - } -! else if (r < 0 && got_subseq) /* XXX */ - { - /* OK, back up the chain. */ -*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 4 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 5 - diff --git a/system/base/readline/files/readline80-001.patch b/system/base/readline/files/readline80-001.patch deleted file mode 100644 index aa72a9df..00000000 --- a/system/base/readline/files/readline80-001.patch +++ /dev/null @@ -1,38 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 8.0 -Patch-ID: readline80-001 - -Bug-Reported-by: chet.ramey@case.edu -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -The history file reading code doesn't close the file descriptor open to -the history file when it encounters a zero-length file. - -Patch (apply with `patch -p0'): - -*** ../readline-8.0-patched/histfile.c 2018-06-11 09:14:52.000000000 -0400 ---- histfile.c 2019-05-16 15:55:57.000000000 -0400 -*************** -*** 306,309 **** ---- 312,316 ---- - { - free (input); -+ close (file); - return 0; /* don't waste time if we don't have to */ - } -*** ../readline-8.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 0 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 1 diff --git a/system/base/readline/files/readline80-002.patch b/system/base/readline/files/readline80-002.patch deleted file mode 100644 index 7923d9d1..00000000 --- a/system/base/readline/files/readline80-002.patch +++ /dev/null @@ -1,60 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 8.0 -Patch-ID: readline80-002 - -Bug-Reported-by: lessbug@qq.com -Bug-Reference-ID: -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'): - -*** ../readline-8.0-patched/misc.c 2017-07-07 17:30:12.000000000 -0400 ---- 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 (); - } -*** ../readline-8.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff --git a/system/base/readline/files/readline80-003.patch b/system/base/readline/files/readline80-003.patch deleted file mode 100644 index b3714581..00000000 --- a/system/base/readline/files/readline80-003.patch +++ /dev/null @@ -1,69 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 8.0 -Patch-ID: readline80-003 - -Bug-Reported-by: HIROSE Masaaki -Bug-Reference-ID: -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'): - -*** ../readline-8.0-patched/histfile.c 2018-06-11 09:14:52.000000000 -0400 ---- 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; -+ } - } - - -*** ../readline-8.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff --git a/system/base/readline/files/readline80-004.patch b/system/base/readline/files/readline80-004.patch deleted file mode 100644 index 8a40ebe9..00000000 --- a/system/base/readline/files/readline80-004.patch +++ /dev/null @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 8.0 -Patch-ID: readline80-004 - -Bug-Reported-by: auroralanes@protonmail.ch -Bug-Reference-ID: -Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2020-01/msg00008.html - -Bug-Description: - -If writing the history file fails, and renaming the backup history file fails, -it's possible for readline's history code to return the wrong error to its -caller. - -Patch (apply with `patch -p0'): - -*** ../bash-20200124/lib/readline/histfile.c 2019-11-19 10:31:58.000000000 -0500 ---- histfile.c 2020-02-01 16:28:29.000000000 -0500 -*************** -*** 621,624 **** ---- 621,625 ---- - if (rv != 0) - { -+ rv = errno; - if (tempname) - unlink (tempname); -*************** -*** 768,771 **** ---- 769,773 ---- - if (rv != 0) - { -+ rv = errno; - if (tempname) - unlink (tempname); -*** ../readline-8.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 3 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 4 diff --git a/system/base/readline/files/readline82-002.patch b/system/base/readline/files/readline82-002.patch new file mode 100644 index 00000000..453b9b85 --- /dev/null +++ b/system/base/readline/files/readline82-002.patch @@ -0,0 +1,48 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-002 + +Bug-Reported-by: srobertson@peratonlabs.com +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-09/msg00049.html + +Bug-Description: + +It's possible for readline to try to zero out a line that's not null- +terminated, leading to a memory fault. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/display.c 2022-04-05 10:47:31.000000000 -0400 +--- display.c 2022-12-13 13:11:22.000000000 -0500 +*************** +*** 2684,2692 **** + + if (visible_line) +! { +! temp = visible_line; +! while (*temp) +! *temp++ = '\0'; +! } + rl_on_new_line (); + forced_display++; +--- 2735,2740 ---- + + if (visible_line) +! memset (visible_line, 0, line_size); +! + rl_on_new_line (); + forced_display++; +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 1 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 2 diff --git a/system/base/readline/files/readline82-003.patch b/system/base/readline/files/readline82-003.patch new file mode 100644 index 00000000..e9fe2c0d --- /dev/null +++ b/system/base/readline/files/readline82-003.patch @@ -0,0 +1,43 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-003 + +Bug-Reported-by: Stefan Klinger +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2023-08/msg00018.html + +Bug-Description: + +Patch (apply with `patch -p0'): + +The custom color prefix that readline uses to color possible completions +must have a leading `.'. + +*** ../readline-8.2-patched/colors.c 2021-12-08 11:38:25.000000000 -0500 +--- colors.c 2023-08-28 16:40:04.000000000 -0400 +*************** +*** 74,78 **** + static void restore_default_color (void); + +! #define RL_COLOR_PREFIX_EXTENSION "readline-colored-completion-prefix" + + COLOR_EXT_TYPE *_rl_color_ext_list = 0; +--- 74,78 ---- + static void restore_default_color (void); + +! #define RL_COLOR_PREFIX_EXTENSION ".readline-colored-completion-prefix" + + COLOR_EXT_TYPE *_rl_color_ext_list = 0; +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 2 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 3 diff --git a/system/base/readline/files/readline82-004.patch b/system/base/readline/files/readline82-004.patch new file mode 100644 index 00000000..d60c662e --- /dev/null +++ b/system/base/readline/files/readline82-004.patch @@ -0,0 +1,65 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-004 + +Bug-Reported-by: Henry Bent +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-11/msg00044.html + +Bug-Description: + +Patch (apply with `patch -p0'): + +There are systems that supply one of select or pselect, but not both. + +*** ../readline-8.2-patched/input.c 2022-04-08 15:43:24.000000000 -0400 +--- input.c 2022-11-28 09:41:08.000000000 -0500 +*************** +*** 152,156 **** +--- 152,158 ---- + int _rl_timeout_init (void); + int _rl_timeout_sigalrm_handler (void); ++ #if defined (RL_TIMEOUT_USE_SELECT) + int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *); ++ #endif + + static void _rl_timeout_handle (void); +*************** +*** 249,253 **** + int chars_avail, k; + char input; +! #if defined(HAVE_SELECT) + fd_set readfds, exceptfds; + struct timeval timeout; +--- 251,255 ---- + int chars_avail, k; + char input; +! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT) + fd_set readfds, exceptfds; + struct timeval timeout; +*************** +*** 806,810 **** + unsigned char c; + int fd; +! #if defined (HAVE_PSELECT) + sigset_t empty_set; + fd_set readfds; +--- 815,819 ---- + unsigned char c; + int fd; +! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT) + sigset_t empty_set; + fd_set readfds; +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 3 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 4 diff --git a/system/base/readline/files/readline82-005.patch b/system/base/readline/files/readline82-005.patch new file mode 100644 index 00000000..57f507f6 --- /dev/null +++ b/system/base/readline/files/readline82-005.patch @@ -0,0 +1,50 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-005 + +Bug-Reported-by: Simon Marchi +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00005.html + +Bug-Description: + +If an application is using readline in callback mode, and a signal arrives +after readline checks for it in rl_callback_read_char() but before it +restores the application's signal handlers, it won't get processed until the +next time the application calls rl_callback_read_char(). Readline needs to +check for and resend any pending signals after restoring the application's +signal handlers. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/callback.c 2022-04-29 12:02:56.000000000 -0400 +--- callback.c 2022-10-11 10:59:06.000000000 -0400 +*************** +*** 116,120 **** + do { \ + if (rl_persistent_signal_handlers == 0) \ +! rl_clear_signals (); \ + return; \ + } while (0) +--- 116,123 ---- + do { \ + if (rl_persistent_signal_handlers == 0) \ +! { \ +! rl_clear_signals (); \ +! if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \ +! } \ + return; \ + } while (0) +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 4 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 5 diff --git a/system/base/readline/files/readline82-006.patch b/system/base/readline/files/readline82-006.patch new file mode 100644 index 00000000..9e315e88 --- /dev/null +++ b/system/base/readline/files/readline82-006.patch @@ -0,0 +1,99 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-006 + +Bug-Reported-by: Tom de Vries +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00001.html + +Bug-Description: + +This is a variant of the same issue as the one fixed by patch 5. In this +case, the signal arrives and is pending before readline calls rl_getc(). +When this happens, the pending signal will be handled by the loop, but may +alter or destroy some state that the callback uses. Readline needs to treat +this case the same way it would if a signal interrupts pselect/select, so +compound operations like searches and reading numeric arguments get cleaned +up properly. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/input.c 2022-12-22 16:15:48.000000000 -0500 +--- input.c 2023-01-10 11:53:45.000000000 -0500 +*************** +*** 812,816 **** + rl_getc (FILE *stream) + { +! int result; + unsigned char c; + int fd; +--- 812,816 ---- + rl_getc (FILE *stream) + { +! int result, ostate, osig; + unsigned char c; + int fd; +*************** +*** 823,828 **** +--- 823,842 ---- + while (1) + { ++ osig = _rl_caught_signal; ++ ostate = rl_readline_state; ++ + RL_CHECK_SIGNALS (); + ++ #if defined (READLINE_CALLBACKS) ++ /* Do signal handling post-processing here, but just in callback mode ++ for right now because the signal cleanup can change some of the ++ callback state, and we need to either let the application have a ++ chance to react or abort some current operation that gets cleaned ++ up by rl_callback_sigcleanup(). If not, we'll just run through the ++ loop again. */ ++ if (osig != 0 && (ostate & RL_STATE_CALLBACK)) ++ goto postproc_signal; ++ #endif ++ + /* We know at this point that _rl_caught_signal == 0 */ + +*************** +*** 888,891 **** +--- 902,908 ---- + + handle_error: ++ osig = _rl_caught_signal; ++ ostate = rl_readline_state; ++ + /* If the error that we received was EINTR, then try again, + this is simply an interrupted system call to read (). We allow +*************** +*** 928,933 **** +--- 945,959 ---- + #endif /* SIGALRM */ + ++ postproc_signal: ++ /* POSIX says read(2)/pselect(2)/select(2) don't return EINTR for any ++ reason other than being interrupted by a signal, so we can safely ++ call the application's signal event hook. */ + if (rl_signal_event_hook) + (*rl_signal_event_hook) (); ++ #if defined (READLINE_CALLBACKS) ++ else if (osig == SIGINT && (ostate & RL_STATE_CALLBACK) && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG))) ++ /* just these cases for now */ ++ _rl_abort_internal (); ++ #endif + } + } +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 5 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 6 diff --git a/system/base/readline/files/readline82-007.patch b/system/base/readline/files/readline82-007.patch new file mode 100644 index 00000000..b0394e0b --- /dev/null +++ b/system/base/readline/files/readline82-007.patch @@ -0,0 +1,48 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-007 + +Bug-Reported-by: Kevin Pulo +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-11/msg00002.html + +Bug-Description: + +If readline is called with no prompt, it should display a newline if return +is typed on an empty line. It should still suppress the final newline if +return is typed on the last (empty) line of a multi-line command. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/display.c 2022-04-05 10:47:31.000000000 -0400 +--- display.c 2022-12-13 13:11:22.000000000 -0500 +*************** +*** 3342,3348 **** + &last_face[_rl_screenwidth - 1 + woff], 1); + } +! _rl_vis_botlin = 0; +! if (botline_length > 0 || _rl_last_c_pos > 0) + rl_crlf (); + fflush (rl_outstream); + rl_display_fixed++; +--- 3394,3400 ---- + &last_face[_rl_screenwidth - 1 + woff], 1); + } +! if ((_rl_vis_botlin == 0 && botline_length == 0) || botline_length > 0 || _rl_last_c_pos > 0) + rl_crlf (); ++ _rl_vis_botlin = 0; + fflush (rl_outstream); + rl_display_fixed++; +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 6 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 7 diff --git a/system/base/readline/pspec.xml b/system/base/readline/pspec.xml index 3c970fcc..30e1b85e 100644 --- a/system/base/readline/pspec.xml +++ b/system/base/readline/pspec.xml @@ -18,6 +18,12 @@ readline82-001.patch + readline82-002.patch + readline82-003.patch + readline82-004.patch + readline82-005.patch + readline82-006.patch + readline82-007.patch @@ -68,6 +74,13 @@ + + 2023-11-19 + 8.2.7 + Version bump. + Mustafa Cinasal + muscnsl@gmail.com + 2023-01-28 8.2.1