Fix an illegal memory access parsing a win32pstatus note with a type of 0.

* elf.c (elfcore_grok_win32pstatus): Check for a note type of 0.
This commit is contained in:
Nick Clifton
2021-01-14 09:15:13 +00:00
parent 271bea6acd
commit 7e0d77ef5f
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2021-01-14 Nick Clifton <nickc@redhat.com>
* elf.c (elfcore_grok_win32pstatus): Check for a note type of 0.
2021-01-13 Alan Modra <amodra@gmail.com>
* Makefile.in: Regenerate.

View File

@ -10163,7 +10163,8 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
type = bfd_get_32 (abfd, note->descdata);
struct {
struct
{
const char *type_name;
unsigned long min_size;
} size_check[] =
@ -10174,7 +10175,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
{ "NOTE_INFO_MODULE64", 16 },
};
if (type > (sizeof(size_check)/sizeof(size_check[0])))
if (type == 0 || type > (sizeof(size_check)/sizeof(size_check[0])))
return TRUE;
if (note->descsz < size_check[type - 1].min_size)