summaryrefslogtreecommitdiff
path: root/core/readline/readline83-002
blob: 356318de3a46fdaf2bdaa317c4be298123a5c3cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
			   READLINE PATCH REPORT
			   =====================

Readline-Release: 8.3
Patch-ID: readline83-002

Bug-Reported-by:	Tobias Powalowski <tobias.powalowski@pm.me>
Bug-Reference-ID:	<6465ed69-d2da-4277-92cf-1046bc97ca60@pm.me>
Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2025-07/msg00005.html

Bug-Description:

If an application calls rl_save_prompt, which sets rl_prompt to NULL, 
without calling rl_set_prompt to set it to a new value, readline redisplay
can dereference a NULL pointer.

Patch (apply with `patch -p0'):

*** ../readline-8.3/display.c	Fri May  2 09:20:32 2025
--- display.c	Sun Jul  6 17:16:28 2025
***************
*** 784,788 ****
  /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
  #define INVIS_FIRST()	(local_prompt_invis_chars[0])
! #define WRAP_OFFSET(line, offset)  ((line <= prompt_last_screen_line) ? local_prompt_invis_chars[line] : 0)
  
  #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
--- 784,788 ----
  /* Useful shorthand used by rl_redisplay, update_line, rl_move_cursor_relative */
  #define INVIS_FIRST()	(local_prompt_invis_chars[0])
! #define WRAP_OFFSET(line, offset)  ((line <= prompt_last_screen_line && local_prompt_invis_chars) ? local_prompt_invis_chars[line] : 0)
  
  #define W_OFFSET(line, offset) ((line) == 0 ? offset : 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
  
! 1
--- 1,3 ----
  # Do not edit -- exists only for use by patch
  
! 2