PR22067, x86 check_relocs invalid read

PR 22067
	* elfxx-x86.h (elf_x86_hash_table): Check is_elf_hash_table first.
This commit is contained in:
Alan Modra 2017-09-03 22:04:09 +09:30
parent 23fdd69e42
commit 1cf58434bf
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-09-03 Alan Modra <amodra@gmail.com>
PR 22067
* elfxx-x86.h (elf_x86_hash_table): Check is_elf_hash_table first.
2017-09-02 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize

View File

@ -41,7 +41,8 @@
#define ELIMINATE_COPY_RELOCS 1
#define elf_x86_hash_table(p, id) \
(elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) == (id) \
(is_elf_hash_table ((p)->hash) \
&& elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) == (id) \
? ((struct elf_x86_link_hash_table *) ((p)->hash)) : NULL)
/* Is a undefined weak symbol which is resolved to 0. Reference to an