]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: do not handle a NULL linebuffer in pager_file::puts
authorSimon Marchi <simon.marchi@polymtl.ca>
Wed, 5 Mar 2025 16:28:15 +0000 (11:28 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 5 Mar 2025 17:19:13 +0000 (12:19 -0500)
This patch [1] has shown that different implementations of ui_file::puts
handle a NULL line differently.  pager_file::puts handles a NULL
argument gracefully, as a no-op, while other implementations don't and
likely crash.  This causes subtle bugs: things will be working until the
current ui_file is suddenly not a pager_file anymore.  I think it would
be better to be consistent here, so change pager_file::puts to not
accept a NULL line.

A regular test run on Linux shows no regression.

[1] https://inbox.sourceware.org/gdb-patches/edfe6e17-1c20-4a4c-944f-247ff71b6c10@simark.ca/T/#m864aea10de8ca6fa84757971fcbaf3180e2eaefa

Change-Id: Ieb465c86cd2c42a248cf481cd174c8622ef6724b
Approved-By: Tom Tromey <tom@tromey.com>
gdb/utils.c

index 4027d4f26c38449d593cfd871c994738cf78d493..9842bfc8be0ffd473c8d2265a92895ab2f04dd67 100644 (file)
@@ -1638,8 +1638,7 @@ pager_file::puts (const char *linebuffer)
 {
   const char *lineptr;
 
-  if (linebuffer == 0)
-    return;
+  gdb_assert (linebuffer != nullptr);
 
   /* Don't do any filtering or wrapping if both are disabled.  */
   if (batch_flag