summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-02-06 16:05:13 +0000
committerNick Clifton <nickc@redhat.com>2018-02-06 16:05:13 +0000
commit68807c3cd64ccc4f0e9261df3e840d30d9a19b51 (patch)
tree3c9d9f4b135943edf452ad681b4a359ef1abe1e3
parent64e234d417d5685a4aec0edc618114d9991c031b (diff)
downloadbinutils-gdb-68807c3cd64ccc4f0e9261df3e840d30d9a19b51.tar.gz
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.
-rw-r--r--binutils/ChangeLog10
-rw-r--r--binutils/readelf.c12
2 files changed, 21 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index f6f3e9971a6..1e7e581bfa4 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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>
* testsuite/binutils-all/mips/mips-reginfo.d: New test.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index ae1cda9a7bd..e3af50a9c94 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -655,7 +655,8 @@ find_section (Filedata * filedata, const char * name)
{
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++)
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;
+ if (filedata->section_headers == NULL)
+ return NULL;
+
for (i = 0; i < filedata->file_header.e_shnum; 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;
+ if (filedata->section_headers == NULL)
+ return NULL;
+
for (i = 0; i < filedata->file_header.e_shnum; 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;
+ if (filedata->section_headers == NULL)
+ return NULL;
+
if (set != NULL)
{
while ((i = *set++) > 0)