From 7eacd66b086cabb1daab20890d5481894d4f56b2 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 23 Apr 2017 15:21:11 +0930 Subject: PR 21414, null pointer deref of _bfd_elf_large_com_section sym PR 21414 * section.c (GLOBAL_SYM_INIT): Make available in bfd.h. * elf.c (lcomm_sym): New. (_bfd_elf_large_com_section): Use lcomm_sym section symbol. * bfd-in2.h: Regenerate. --- bfd/elf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'bfd/elf.c') diff --git a/bfd/elf.c b/bfd/elf.c index dd1a41f..a08e0f8 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -11244,9 +11244,11 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd, /* It is only used by x86-64 so far. ??? This repeats *COM* id of zero. sec->id is supposed to be unique, - but current usage would allow all of _bfd_std_section to be zero. t*/ + but current usage would allow all of _bfd_std_section to be zero. */ +static const asymbol lcomm_sym + = GLOBAL_SYM_INIT ("LARGE_COMMON", &_bfd_elf_large_com_section); asection _bfd_elf_large_com_section - = BFD_FAKE_SECTION (_bfd_elf_large_com_section, NULL, + = BFD_FAKE_SECTION (_bfd_elf_large_com_section, &lcomm_sym, "LARGE_COMMON", 0, SEC_IS_COMMON); void -- cgit v1.1