Replace reachable assertion with a test and return of NULL.

PR 22793
	* readelf.c (find_section): Replace assertion with test and return
	of NULL.
	(find_section_by_address): Add test of section header table
	existance.
	(find_section_by_type): Likewise.
	(find_section_in_set): Likewise.
This commit is contained in:
Nick Clifton 2018-02-06 16:05:13 +00:00
parent 64e234d417
commit 68807c3cd6
2 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2018-02-06 Nick Clifton <nickc@redhat.com>
PR 22793
* readelf.c (find_section): Replace assertion with test and return
of NULL.
(find_section_by_address): Add test of section header table
existance.
(find_section_by_type): Likewise.
(find_section_in_set): Likewise.
2018-02-05 Maciej W. Rozycki <macro@mips.com> 2018-02-05 Maciej W. Rozycki <macro@mips.com>
* testsuite/binutils-all/mips/mips-reginfo.d: New test. * testsuite/binutils-all/mips/mips-reginfo.d: New test.

View File

@ -655,7 +655,8 @@ find_section (Filedata * filedata, const char * name)
{ {
unsigned int i; unsigned int i;
assert (filedata->section_headers != NULL); if (filedata->section_headers == NULL)
return NULL;
for (i = 0; i < filedata->file_header.e_shnum; i++) for (i = 0; i < filedata->file_header.e_shnum; i++)
if (streq (SECTION_NAME (filedata->section_headers + i), name)) if (streq (SECTION_NAME (filedata->section_headers + i), name))
@ -672,6 +673,9 @@ find_section_by_address (Filedata * filedata, bfd_vma addr)
{ {
unsigned int i; unsigned int i;
if (filedata->section_headers == NULL)
return NULL;
for (i = 0; i < filedata->file_header.e_shnum; i++) for (i = 0; i < filedata->file_header.e_shnum; i++)
{ {
Elf_Internal_Shdr *sec = filedata->section_headers + i; Elf_Internal_Shdr *sec = filedata->section_headers + i;
@ -688,6 +692,9 @@ find_section_by_type (Filedata * filedata, unsigned int type)
{ {
unsigned int i; unsigned int i;
if (filedata->section_headers == NULL)
return NULL;
for (i = 0; i < filedata->file_header.e_shnum; i++) for (i = 0; i < filedata->file_header.e_shnum; i++)
{ {
Elf_Internal_Shdr *sec = filedata->section_headers + i; Elf_Internal_Shdr *sec = filedata->section_headers + i;
@ -707,6 +714,9 @@ find_section_in_set (Filedata * filedata, const char * name, unsigned int * set)
{ {
unsigned int i; unsigned int i;
if (filedata->section_headers == NULL)
return NULL;
if (set != NULL) if (set != NULL)
{ {
while ((i = *set++) > 0) while ((i = *set++) > 0)