Skip to content

v0.6.0

Compare
Choose a tag to compare
@cole14 cole14 released this 14 Nov 21:16
· 156 commits to master since this release
v0.6.0
aa41e55

[0.6.0] - 2022-11-01

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)