diff options
author | Alan Modra <amodra@gmail.com> | 2017-04-23 15:21:11 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-04-23 20:33:34 +0930 |
commit | 7eacd66b086cabb1daab20890d5481894d4f56b2 (patch) | |
tree | 15b664ffb07f3dd3e24c80c24e69c54f396b46af /bfd/bfd-in2.h | |
parent | bce964aa6c777d236fbd641f2bc7bb931cfe4bf3 (diff) | |
download | gdb-7eacd66b086cabb1daab20890d5481894d4f56b2.zip gdb-7eacd66b086cabb1daab20890d5481894d4f56b2.tar.gz gdb-7eacd66b086cabb1daab20890d5481894d4f56b2.tar.bz2 |
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.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r-- | bfd/bfd-in2.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 1d73134..17a35c0 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1839,6 +1839,18 @@ extern asection _bfd_std_section[4]; { NULL }, { NULL } \ } +/* We use a macro to initialize the static asymbol structures because + traditional C does not permit us to initialize a union member while + gcc warns if we don't initialize it. + the_bfd, name, value, attr, section [, udata] */ +#ifdef __STDC__ +#define GLOBAL_SYM_INIT(NAME, SECTION) \ + { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }} +#else +#define GLOBAL_SYM_INIT(NAME, SECTION) \ + { 0, NAME, 0, BSF_SECTION_SYM, SECTION } +#endif + void bfd_section_list_clear (bfd *); asection *bfd_get_section_by_name (bfd *abfd, const char *name); |