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.
This commit is contained in:
Alan Modra
2026-01-02 08:21:31 +10:30
parent 2c348c43fa
commit 682332608d

View File

@@ -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 == ',')
{