diff options
author | Ren Kimura <rkx1209dev@gmail.com> | 2019-07-23 07:33:32 +0000 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-07-23 07:33:32 +0000 |
commit | b1bc0f50350a568e67ed731c4fec2c72847f15fe (patch) | |
tree | 3deeccfb1092757e523ad24bd55c6e107b61cfd5 /libiberty/simple-object-elf.c | |
parent | c0cdef59af5cc7fb67dc8ad4fc501ac47ab88aaf (diff) | |
download | gcc-b1bc0f50350a568e67ed731c4fec2c72847f15fe.zip gcc-b1bc0f50350a568e67ed731c4fec2c72847f15fe.tar.gz gcc-b1bc0f50350a568e67ed731c4fec2c72847f15fe.tar.bz2 |
libiberty: Check zero value shstrndx in simple-object-elf.c
From-SVN: r273718
Diffstat (limited to 'libiberty/simple-object-elf.c')
-rw-r--r-- | libiberty/simple-object-elf.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c index 5023889..bdee963 100644 --- a/libiberty/simple-object-elf.c +++ b/libiberty/simple-object-elf.c @@ -548,7 +548,15 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN], XDELETE (eor); return NULL; } - + + if (eor->shstrndx == 0) + { + *errmsg = "invalid ELF shstrndx == 0"; + *err = 0; + XDELETE (eor); + return NULL; + } + return (void *) eor; } |