readline-8.2.7
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 6.3
|
||||
Patch-ID: readline63-001
|
||||
|
||||
Bug-Reported-by: Daan van Rossum <daan@flash.uchicago.edu>
|
||||
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
|
||||
@@ -1,44 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 6.3
|
||||
Patch-ID: readline63-002
|
||||
|
||||
Bug-Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
|
||||
Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
|
||||
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
|
||||
@@ -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
|
||||
@@ -1,57 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 7.0
|
||||
Patch-ID: readline70-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:
|
||||
|
||||
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
|
||||
@@ -1,103 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 7.0
|
||||
Patch-ID: readline70-002
|
||||
|
||||
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-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
|
||||
@@ -1,40 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 7.0
|
||||
Patch-ID: readline70-003
|
||||
|
||||
Bug-Reported-by: Frédéric Brière <fbriere@fbriere.net>
|
||||
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
|
||||
@@ -1,47 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 7.0
|
||||
Patch-ID: readline70-004
|
||||
|
||||
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'):
|
||||
|
||||
*** ../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 <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
|
||||
*** ../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
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 7.0
|
||||
Patch-ID: readline70-005
|
||||
|
||||
Bug-Reported-by: Nuzhna Pomoshch <nuzhna_pomoshch@yahoo.com>
|
||||
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
|
||||
|
||||
@@ -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
|
||||
@@ -1,60 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.0
|
||||
Patch-ID: readline80-002
|
||||
|
||||
Bug-Reported-by: lessbug@qq.com
|
||||
Bug-Reference-ID: <tencent_6AA531D9A5CC4121D86BD5CDA2E0DA98C605@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'):
|
||||
|
||||
*** ../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
|
||||
@@ -1,69 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.0
|
||||
Patch-ID: readline80-003
|
||||
|
||||
Bug-Reported-by: HIROSE Masaaki <hirose31@gmail.com>
|
||||
Bug-Reference-ID: <CAGSOfA-RqiTe=+GsXsDKyZrrMWH4bDbXgMVVegMa6OjqC5xbnQ@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'):
|
||||
|
||||
*** ../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
|
||||
@@ -1,47 +0,0 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.0
|
||||
Patch-ID: readline80-004
|
||||
|
||||
Bug-Reported-by: auroralanes@protonmail.ch
|
||||
Bug-Reference-ID: <WikEDKluAyoha9IDLp83rbN7_Uinr2rrpvSV_z4wmt9qur9piN-FNOn17P0cAizEVah1Fvc9d641vIIWX_7SC6EUTz0CatnOH-C-UK3rPYc=@protonmail.ch>
|
||||
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
|
||||
@@ -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
|
||||
@@ -0,0 +1,43 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-003
|
||||
|
||||
Bug-Reported-by: Stefan Klinger <readline-gnu.org@stefan-klinger.de>
|
||||
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
|
||||
@@ -0,0 +1,65 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-004
|
||||
|
||||
Bug-Reported-by: Henry Bent <henry.r.bent@gmail.com>
|
||||
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
|
||||
@@ -0,0 +1,50 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-005
|
||||
|
||||
Bug-Reported-by: Simon Marchi <simon.marchi@polymtl.ca>
|
||||
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
|
||||
@@ -0,0 +1,99 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-006
|
||||
|
||||
Bug-Reported-by: Tom de Vries <tdevries@suse.de>
|
||||
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
|
||||
@@ -0,0 +1,48 @@
|
||||
READLINE PATCH REPORT
|
||||
=====================
|
||||
|
||||
Readline-Release: 8.2
|
||||
Patch-ID: readline82-007
|
||||
|
||||
Bug-Reported-by: Kevin Pulo <kev@pulo.com.au>
|
||||
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
|
||||
@@ -18,6 +18,12 @@
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch>readline82-001.patch</Patch>
|
||||
<Patch>readline82-002.patch</Patch>
|
||||
<Patch>readline82-003.patch</Patch>
|
||||
<Patch>readline82-004.patch</Patch>
|
||||
<Patch>readline82-005.patch</Patch>
|
||||
<Patch>readline82-006.patch</Patch>
|
||||
<Patch>readline82-007.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
@@ -68,6 +74,13 @@
|
||||
</Files>
|
||||
</Package>
|
||||
<History>
|
||||
<Update release="11">
|
||||
<Date>2023-11-19</Date>
|
||||
<Version>8.2.7</Version>
|
||||
<Comment>Version bump.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="10">
|
||||
<Date>2023-01-28</Date>
|
||||
<Version>8.2.1</Version>
|
||||
|
||||
Reference in New Issue
Block a user