[pushed] Fix crash in gdb_rl_callback_handler

Message ID 20240415185338.3904592-1-tromey@adacore.com
State New
Headers
Series [pushed] Fix crash in gdb_rl_callback_handler |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 warning Patch is already merged

Commit Message

Tom Tromey April 15, 2024, 6:53 p.m. UTC
  commit bdcd50f9 ("Strip trailing newlines from input string")
introduced a crash in eof-exit.exp.  This patch fixes the problem by
adding a NULL check in the appropriate spot.

Regression tested on x86-64 Fedora 38.  I'm checking this in.
---
 gdb/event-top.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
  

Patch

diff --git a/gdb/event-top.c b/gdb/event-top.c
index f0c07ba7f64..6a2a75fe3dc 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -254,10 +254,13 @@  gdb_rl_callback_handler (char *rl) noexcept
   /* In bracketed paste mode, pasting a complete line can result in a
      literal newline appearing at the end of LINE.  However, we never
      want this in gdb.  */
-  size_t len = strlen (rl);
-  while (len > 0 && (rl[len - 1] == '\r' || rl[len - 1] == '\n'))
-    --len;
-  rl[len] = '\0';
+  if (rl != nullptr)
+    {
+      size_t len = strlen (rl);
+      while (len > 0 && (rl[len - 1] == '\r' || rl[len - 1] == '\n'))
+	--len;
+      rl[len] = '\0';
+    }
 
   try
     {