Releases: davea42/libdwarf-code
Added a function to the API. Improved code consistency and clarity.
Added function dwarf_get_ranges_baseaddress()
to the api to allow dwarfdump and other library callers
to easily derive the (cooked) address from
the raw data in the DWARF2, DWARF3, DWARF4 .debug_ranges
section.
An example of use is in doc/checkexamples.c (see examplev).
Made various improvements in code clarity and consistency.
Release v0.10.1
Fixes issues in 0.10.0 relating to pkg-config files generated for make install
and the like.
v0.10.0
Fixed 4 vulnerabilities
Fixed vulnerabilities DW202402-001, DW202402-002,DW202402-003, and DW202403-001,
which involve corrupted DWARF. The library now returns DW_DLV_ERROR
if any of these corruptions are seen.
[edit] For a few minutes there was a v0.9.2 before this visible, but the tags for it were
done wrong. Fixed, re-released.
Corrected MacOS relocatable object reads.
(recreated release record 29 January with the correct libdwarf-0.9.1.tar.xz.
The 27 January version had an unrelated tar.xz)
Altered the type of the return value of
dwarf_die_abbrev_code() and dwarf_get_section_count()
from int to Dwarf_Unsigned for consistency (should always
have been this way).
Problems reading Mach-o (Apple) relocatable object files
are fixed.
All three build systems have a option
+\to turn off use of decompression libraries, see
README.md and READMEcmake.md .
All type warnings from MSVC are fixed.
Version 0.9.0
Added support for reading Apple MacOS universal binaries.
Added callers access to certain fields from
object files (for all supported object formats),
and added the --print-machine-arch option to dwarfdump
to show the fields.
Vulnerabilities found by fuzzing were fixed.
Version 0.8.0
Adds two new DWARF Frame interface functions which correct a mistake in an argument type used to return a value to the caller. The existing functions remain in place so no recompiling or relinking is required. Documentation explains how to use the existing functions (via a cast) so the existing versions can be used correctly.
More than 10 vulnerabilities were fixed. So even reading corrupt Elf/DWARF will not result in memory corruption or a crash.
Release libdwarf 0.7.0
About 50 vulnerabilities (found by fuzzing) reading corrupt DWARF and/or Elf have been fixed.
Support for 32 bit section numbers (standard Elf has 16 bit section numbers) means
that users calling dwarf_object_init_b()/dwarf_object_finish()
have a source incompatibility to deal with.
Two functions reading the .debug_names section
dwarf_dnames_abbrev_by_code()
and dwarf_dnames_abbrev_form_by_index() were hard to
use and/or broken. They are not needed so they have
been removed.
Release libdwarf 0.6.0
Fixes for Denial Of Service (possible libdwarf crash):
The dealloc required for dwarf_offset_list() was incorrect, possibly leading to a crash.
The function prototype for dwarf_dietype_offset() changed so it can work correctly on DWARF4 objects.
A memory leak from dwarf_load_loclists() has been fixed.
The function dwarf_get_pubtypes() changed, Dwarf_Type no longer exists, correcting a library design mistake made in 1993. The function applied to DWARF3 and DWARF4 objects.
The set of functions using Dwarf_Type are gone, use Dwarf_Global instead.
An object with DW_FORM_strx3 (DWARF5) could result in the library either crashing or returning an inappropriate error. DW_FORM_strx3 is now handled properly.
Libdwarf version 0.5.0
libdwarf-0.5.0 improves library performance reading
DWARF DIEs by several percent (with no change in API).
It adds functions allowing acess to the .debug_addr
section independent of other sections.
dwarfdump has a new option to show that
section.
Corrects the handling of some aspects of
reading the .debug_names section.
Enhances dwarf_get_globals() to return
all globals that .debug_pubnames and .debug_names
refer to (no change in the API except adding
a function to return the DW_TAG of any globals
derived from .debug_names)