From: Tom Tromey Date: Sat, 13 Sep 2025 19:44:10 +0000 (-0600) Subject: Fix crash in f-typeprint.c X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18400a9cdf6b3d84996a99697a97774f268576c2;p=thirdparty%2Fbinutils-gdb.git Fix crash in f-typeprint.c I noticed a crash in f-typeprint.c that was hidden by an xfail: XFAIL: gdb.fortran/vla-array.exp: print variable length string array type (GDB internal error) (PRMS gcc/101826) I think this was introduced by commit 6594ca4a ("do not handle a NULL linebuffer in pager_file::puts") but not detected due to the xfail. It seems bad for an xfail to cover up a crash but I haven't investigated that. Meanwhile, this patch fixes the crash by checking for a NULL pointer when calling gdb_puts. Approved-by: Kevin Buettner --- diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c index e96d27c537e..04eca74fb2b 100644 --- a/gdb/f-typeprint.c +++ b/gdb/f-typeprint.c @@ -412,9 +412,11 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream, if (show > 0) f_type_print_derivation_info (type, stream); - gdb_puts (" ", stream); - - gdb_puts (type->name (), stream); + if (type->name () != nullptr) + { + gdb_puts (" ", stream); + gdb_puts (type->name (), stream); + } /* According to the definition, we only print structure elements in case show > 0. */ @@ -432,7 +434,8 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream, gdb_puts ("\n", stream); } gdb_printf (stream, "%*sEnd Type ", level, ""); - gdb_puts (type->name (), stream); + if (type->name () != nullptr) + gdb_puts (type->name (), stream); } break;