asan: _bfd_stab_section_find_nearest_line segv
authorAlan Modra <amodra@gmail.com>
Wed, 28 Sep 2022 00:22:22 +0000 (09:52 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 28 Sep 2022 00:57:07 +0000 (10:27 +0930)
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.

bfd/syms.c

index ec62f3457ca3451b60c7d8d7fe463a1a784a6678..e8077f59bf0c566bc3d60068d11637aab7a1d50c 100644 (file)
@@ -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))