diff options
author | Alan Modra <amodra@gmail.com> | 2024-12-11 17:02:00 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2024-12-13 15:21:45 +1030 |
commit | a21e2f0c20565216fbc560225ba15d8c5c1e1aa8 (patch) | |
tree | 977aa6d4394a27b7a1b0a33a9aca1c4c69c8641d /gas | |
parent | 2cd1fe362711bb7221826cb5e1d791bffc04fc51 (diff) | |
download | gdb-a21e2f0c20565216fbc560225ba15d8c5c1e1aa8.zip gdb-a21e2f0c20565216fbc560225ba15d8c5c1e1aa8.tar.gz gdb-a21e2f0c20565216fbc560225ba15d8c5c1e1aa8.tar.bz2 |
xcoff reading dynamic relocs
This adds a sanity check to relocation symbol indices, and tidies code
a little.
The patch does result in a couple of testsuite failures
rs6000-aix7.2 +FAIL: TLS relocations (32-bit)
rs6000-aix7.2 +FAIL: TLS relocations (64-bit)
That seems reasonable to me, because prior to this patch l_symndx was
being set to -1 and -2 for .tdata and .tbss symbols resulting in a
buffer overflow when accessing the syms array.
bfd/
* xcofflink.c (_bfd_xcoff_canonicalize_dynamic_reloc): Prevent
symbol array overflow on invalid relocation symbol index.
Tidy code for relocs against standard sections.
(xcoff_create_ldrel): Remove cast.
include/
* coff/xcoff.h (struct internal_ldrel): Make l_symndx uint32_t.
Make l_rtype and l_rsecnm int16_t.
Diffstat (limited to 'gas')
0 files changed, 0 insertions, 0 deletions