Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New Features: * Add fuzz targets for parts of our ELF parsing interface via cargo-fuzz * Add SysVHashTable which interprets the contents of a SHT_HASH section * Add StringTable::get_raw() to get an uninterpreted &[u8] * Add ParsingTable.len() method to get the number of elements in the table * Add some note n_type constants for GNU extension notes. * Add default "to_str" feature to get &str for gabi constant names Changed Interfaces: * Change File::segments() to return a ParsingTable instead of just a ParsingIterator * Change File's SectionHeader interfaces to provide a ParsingTable instead of just a ParsingIterator * Remove deprecated File::section_data_for_header() in favor of File::section_data() * Remove FileHeader wrapper types OSABI, Architecture, and ObjectFileType * Remove ProgramHeader wrapper types ProgType and ProgFlag * Remove Symbol wrapper types SymbolType SymbolBind SymbolVis * Remove wrapper type SectionType * Remove unhelpful SectionFlag wrapper type * Remove Display impl for FileHeader, SectionHeader, ProgramHeader, Symbol * Remove ParseError::UnsupportedElfVersion in favor of more general ParseError::UnsupportedVersion Bug Fixes: * Fix divide by zero panic when parsing a note with alignment of 0 (Error instead of panic) * Use checked integer math all over the parsing code (Error instead of panic or overflow) * Fix note parsing for 8-byte aligned .note.gnu.property sections (Successfully parse instead of Erroring) * Add size validation when parsing tables with entsizes (Error instead of panic)
- Loading branch information