PR28834, PR26946 sanity checking section size
authorAlan Modra <amodra@gmail.com>
Fri, 11 Nov 2022 03:13:42 +0000 (13:43 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 11 Nov 2022 07:35:36 +0000 (18:05 +1030)
commitf7502dfe3f99d09fba2fc49f806ccc6b0a18c06d
tree2647f5d77d7515971d4ece107bafb5c4520920ac
parentd0e5049d8fa8e1994a42bb0296f72cc981b8ce8c
PR28834, PR26946 sanity checking section size

This patch provides a new function to sanity check section sizes.
It's mostly extracted from what we had in bfd_get_full_section_contents
but also handles compressed debug sections.
Improvements are:
- section file offset is taken into account,
- added checks that a compressed section can be read from file.

The function is then used when handling multiple .debug_* sections
that need to be read into a single buffer, to sanity check sizes
before allocating the buffer.

PR 26946, PR 28834
* Makefile.am (LIBBFD_H_FILES): Add section.c.
* compress.c (bfd_get_full_section_contents): Move section size
sanity checks..
* section.c (_bfd_section_size_insane): ..to here.  New function.
* dwarf2.c (read_section): Use _bfd_section_size_insane.
(_bfd_dwarf2_slurp_debug_info): Likewise.
* Makefile.in: Regenerate.
* libbfd.h: Regenerate.
bfd/Makefile.am
bfd/Makefile.in
bfd/compress.c
bfd/dwarf2.c
bfd/libbfd.h
bfd/section.c