PE compression/corruption fixes with related test case
A series of patches addresses bugs in BFD PE format compression and corruption, introducing a test case for debug section round trips.
Tobias Deiminger proposes a series of three patches to fix issues related to debug section compression and file corruption in the BFD PE format. The series includes fixes for PE debug section compression on pei-* targets and for objcopy corruption with pe-bigobj-*, along with a new test case to verify a debug symbol compress-decompress round trip across all enabled target formats. The test requires both fixes to pass.
- proposer
Submits a series of patches fixing BFD PE format issues related to debug section compression and file corruption, along with a new test case.
“Here are two loosely related bugfixes for BFD PE formats, covered by a new test case that verifies a debug symbol compress-decompress round trip for all enabled target formats. The test needs both fixes to succeed.”
In Details
This series addresses two distinct but related bugs within the BFD library's handling of the Portable Executable (PE) format, specifically concerning compressed debug sections. The first patch corrects the compression of debug sections for pei-* targets, which previously failed in a round-trip scenario. The second patch fixes corruption issues when converting to pe-bigobj-* formats using objcopy. A new test case is included to validate the compress/decompress functionality for debug information across various PE targets.
- BFD
- The Binary File Descriptor library, a component of GNU Binutils that provides a common interface for reading and writing various executable file formats.
- PE format
- Portable Executable, the file format used for executables, object code, and DLLs on 32-bit and 64-bit versions of Windows.
- debug sections
- Sections within an executable file that contain debugging information, such as symbol tables, line number information, and DWARF data, used by debuggers.
- compress-decompress round trip
- The process of compressing data, then decompressing it, and verifying that the result is identical to the original data.
- pei-*
- A target triplet or format specifier within BFD, typically referring to PE Image format variations, distinct from standard PE.
- pe-bigobj-*
- A specific PE format variant that supports larger object files, often used for executables with many sections.
- objcopy
- A GNU Binutils utility used to copy and translate object files from one format to another, and to modify sections and symbols.