From: Simon Marchi Date: Wed, 5 Mar 2025 16:28:15 +0000 (-0500) Subject: gdb: do not handle a NULL linebuffer in pager_file::puts X-Git-Tag: binutils-2_45~1376 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6594ca4a99dabbebd70c0748dee61d8b3a373336;p=thirdparty%2Fbinutils-gdb.git gdb: do not handle a NULL linebuffer in pager_file::puts 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 --- diff --git a/gdb/utils.c b/gdb/utils.c index 4027d4f26c3..9842bfc8be0 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -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