From: Alan Modra Date: Thu, 1 Jan 2026 21:51:31 +0000 (+1030) Subject: gas .xstabs missing string results in a segfault X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=682332608db2cac2c39aeb7f3b8dac61e1bc49e0;p=thirdparty%2Fbinutils-gdb.git gas .xstabs missing string results in a segfault Found by oss-fuzz. * stabs.c (s_xstab): Check result of demand_copy_C_string. (s_stab_generic): Remove duplicate warning and ignore_r_o_l after demand_copy_C_string error. --- diff --git a/gas/stabs.c b/gas/stabs.c index 331a72f6753..c7797bc01e4 100644 --- a/gas/stabs.c +++ b/gas/stabs.c @@ -259,11 +259,7 @@ s_stab_generic (int what, string = demand_copy_C_string (&length); if (string == NULL) - { - as_warn (_(".stab%c: missing string"), what); - ignore_rest_of_line (); - goto out2; - } + goto out2; /* FIXME: We should probably find some other temporary storage for string, rather than leaking memory if someone else happens to use the notes obstack. */ @@ -402,6 +398,9 @@ s_xstab (int what) char *stab_secname, *stabstr_secname; stab_secname = demand_copy_C_string (&length); + if (stab_secname == NULL) + /* as_bad error has been reported. */ + return; SKIP_WHITESPACE (); if (*input_line_pointer == ',') {