Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package readline for openSUSE:Factory checked in at 2023-11-22 18:54:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/readline (Old) and /work/SRC/openSUSE:Factory/.readline.new.25432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "readline" Wed Nov 22 18:54:01 2023 rev:15 rq:1127840 version:8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/readline/readline.changes 2022-10-23 16:32:45.139204610 +0200 +++ /work/SRC/openSUSE:Factory/.readline.new.25432/readline.changes 2023-11-22 18:54:02.330321482 +0100 @@ -1,0 +2,28 @@ +Tue Nov 21 07:04:06 UTC 2023 - Dr. Werner Fink <werner@suse.de> + +- Add upstream patch readline82-002 + * It's possible for readline to try to zero out a line that's not null- + terminated, leading to a memory fault. +- Add upstream patch readline82-003 +- Add upstream patch readline82-004 +- Add upstream patch readline82-005 + * 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. +- Add upstream patch readline82-006 + * 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. +- Add upstream patch readline82-007 + * 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. + +------------------------------------------------------------------- New: ---- readline82-002 readline82-002.sig readline82-003 readline82-003.sig readline82-004 readline82-004.sig readline82-005 readline82-005.sig readline82-006 readline82-006.sig readline82-007 readline82-007.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ readline.spec ++++++ --- /var/tmp/diff_new_pack.7n4LSk/_old 2023-11-22 18:54:06.438472250 +0100 +++ /var/tmp/diff_new_pack.7n4LSk/_new 2023-11-22 18:54:06.442472396 +0100 @@ -1,7 +1,7 @@ # # spec file for package readline # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -34,7 +34,19 @@ # signatures for official patches # official patches Patch101: readline82-001 +Patch102: readline82-002 +Patch103: readline82-003 +Patch104: readline82-004 +Patch105: readline82-005 +Patch106: readline82-006 +Patch107: readline82-007 Source101: readline82-001.sig +Source102: readline82-002.sig +Source103: readline82-003.sig +Source104: readline82-004.sig +Source105: readline82-005.sig +Source106: readline82-006.sig +Source107: readline82-007.sig # local patches Patch200: readline-%{version}.dif Patch201: readline-6.3-input.dif @@ -105,16 +117,22 @@ %prep %setup -q -n readline-%{version}%{rextend} # official patches -%patch101 -p0 +%patch -P101 -p0 +%patch -P102 -p0 +%patch -P103 -p0 +%patch -P104 -p0 +%patch -P105 -p0 +%patch -P106 -p0 +%patch -P107 -p0 # local patches -%patch201 -p2 -b .zerotty -%patch202 -p2 -b .conf -%patch203 -p2 -b .metamode -%patch205 -b .xm -%patch206 -b .destdir -%patch207 -p2 -b .tmp -%patch208 -p2 -b .screen -%patch200 -b .0 +%patch -P201 -p2 -b .zerotty +%patch -P202 -p2 -b .conf +%patch -P203 -p2 -b .metamode +%patch -P205 -b .xm +%patch -P206 -b .destdir +%patch -P207 -p2 -b .tmp +%patch -P208 -p2 -b .screen +%patch -P200 -b .0 %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects ++++++ readline-6.3-input.dif ++++++ --- /var/tmp/diff_new_pack.7n4LSk/_old 2023-11-22 18:54:06.494474305 +0100 +++ /var/tmp/diff_new_pack.7n4LSk/_new 2023-11-22 18:54:06.494474305 +0100 @@ -5,7 +5,7 @@ --- lib/readline/input.c +++ lib/readline/input.c 2018-11-29 08:29:58.432878428 +0000 -@@ -799,6 +799,8 @@ rl_read_key (void) +@@ -801,6 +801,8 @@ rl_read_key (void) return (c); } @@ -14,7 +14,7 @@ int rl_getc (FILE *stream) { -@@ -846,7 +848,10 @@ rl_getc (FILE *stream) +@@ -862,7 +864,10 @@ rl_getc (FILE *stream) /* If zero characters are returned, then the file that we are reading from is empty! Return EOF in that case. */ if (result == 0) ++++++ readline82-002 ++++++ 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 ++++++ readline82-003 ++++++ 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 ++++++ readline82-004 ++++++ 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 ++++++ readline82-005 ++++++ 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 ++++++ readline82-006 ++++++ 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 ++++++ readline82-007 ++++++ 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