From: Alan Modra Date: Wed, 28 Sep 2022 00:22:22 +0000 (+0930) Subject: asan: _bfd_stab_section_find_nearest_line segv X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8e4a500a5c4cef1aafc2c6e47cadd3dea0bfb99b;p=binutils-gdb.git asan: _bfd_stab_section_find_nearest_line segv The segv was on "info->strs[strsize - 1] = 0;" with strsize zero. OK, if strsize is zero we don't have any filenames in stabs so no useful info. * syms.c (_bfd_stab_section_find_nearest_line): Exit if either stabsize or strsize is zero. --- diff --git a/bfd/syms.c b/bfd/syms.c index ec62f3457ca..e8077f59bf0 100644 --- a/bfd/syms.c +++ b/bfd/syms.c @@ -1027,6 +1027,9 @@ _bfd_stab_section_find_nearest_line (bfd *abfd, ? info->strsec->rawsize : info->strsec->size); + if (stabsize == 0 || strsize == 0) + goto out; + if (!bfd_malloc_and_get_section (abfd, info->stabsec, &info->stabs)) goto out; if (!bfd_malloc_and_get_section (abfd, info->strsec, &info->strs))