https://sourceware.org/bugzilla/show_bug.cgi?id=34326
--- Comment #4 from Sourceware Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <[email protected]>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1dcfefd8dd49e32a9880a79c8fbb9276eaade23c commit 1dcfefd8dd49e32a9880a79c8fbb9276eaade23c Author: H.J. Lu <[email protected]> Date: Wed Jul 1 10:15:30 2026 +0800 readelf: Update dynamic tag processing and validate section info Count DT_RELR relocations using dynamic tags when section header isn't used. Ignore section sh_offset and sh_size if they are larger than file size. One side effect is that we now display readelf: Warning: Ignore the out of range sh_offset value of 2199023261148 for section 17 readelf: Warning: Ignore the out of range sh_size value of 13 for section 17 with sh_offset value of 2199023261148 ... [17] .fini PROGBITS 00000000000015dc 000000 000000 00 AX 0 0 4 ... instead of ... [17] .fini PROGBITS 00000000000015dc 200000015dc 00000d 00 AX 0 0 4 ... and segfault. binutils/ PR binutils/34326 PR binutils/34339 * readelf.c (update_all_relocations): Skip if nentries == 0. (validate_section_info): New. (get_32bit_section_headers): Call validate_section_info. (get_64bit_section_headers): Likewise. (process_relocs): Call count_relr_relocations for relocations from dynamic tags. Skip if values in DT_RELENT/DT_RELAENT are larger than values in DT_RELSZ/DT_RELASZ. (process_got_section_contents): Skip if all_relocations_count == 0. ld/ PR binutils/34339 * testsuite/ld-x86-64/binutils.exp: Run PR binutils/34339 tests. * testsuite/ld-x86-64/got-2.s: New file. * testsuite/ld-x86-64/libgot-2.rd: Likewise. Signed-off-by: H.J. Lu <[email protected]> -- You are receiving this mail because: You are on the CC list for the bug.
