[PATCH v2] readelf: Update dynamic tag processing and validate section info
Jan Beulich
jbeulich@suse.com
Fri Jul 3 10:05:09 GMT 2026
On 02.07.2026 00:50, H.J. Lu wrote:
> On Wed, Jul 1, 2026 at 2:37 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>>
>> 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 if needed. Check
>> invalid invalid DT_RELENT and DT_RELAENT dynamic tags.
>> (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.
>>
>
> Here is the v2 patch. Changes are:
>
> 1. Combine 2 readelf dump entries into one.
Okay, albeit please with PRIu64 consistently used with uint64_t values.
Jan
More information about the Binutils
mailing list