[PATCH v2] readelf: Update dynamic tag processing and validate section info

H.J. Lu hjl.tools@gmail.com
Fri Jul 3 13:40:36 GMT 2026


On Fri, Jul 3, 2026 at 6:05 PM Jan Beulich <jbeulich@suse.com> wrote:
>
> 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.
>

Fixed.  This is the patch I am checking in.

Thanks.

-- 
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-readelf-Update-dynamic-tag-processing-and-validate-s.patch
Type: text/x-patch
Size: 10775 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20260703/5f6faa20/attachment-0001.bin>


More information about the Binutils mailing list