Releases: davea42/libdwarf-code
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)
Libdwarf version 0.4.2
We believe all memory leaks have been removed from dwarfdump
and from libdwarf, even when reading corrupted object files. How to deal with a dwarf_init*() call
that fails (DW_DLV_ERROR) in a simple way is finally
documented in libdwarf.pdf and in the on-line html.
There are no API changes and no API deletions.
Libdwarf version 0.4.1
Two places where a carefully corrupted object file
could result in libdwarf crashing a caller due to
referencing memory outside the intended read area
have been fixed (DW202205-001 and DW202206-001).
One related to DW_FORM_ref_sig8, the other to
the .debug_pubnames section.
The library now accepts DW_AT_entry_pc in a CU DIE as a base address
when DW_AT_low_pc is missing (an extension used by
a current compiler).
Added function dwarf_suppress_debuglink_crc() to allow
callers to turn off doing a CRC calculation
reading GNU debuglink data (saves time for library
users accessing near-identical builds).
Libdwarf version 0.4.0
Changes to 6 interfaces to make 3 dealloc functions be named with a pattern consistent with the rest of libdwarf, a function reverted to a pre-DWARF5 version for correctness, and changes to the .debug_names API functions to enable full access to the section.
Details on the changes are in the Recent Changes section of libdwarf.pdf
dwarfdump now prints all the information in .debug_names with --print-debug-names.
Libdwarf version 0.3.4
Fixed a bug in test scripts so 'make check -j8' will work properly.
Fixed a bug where reading a PE (Windows) object could fail for certain section virtual size values.
Added initializers to two uninitialized local variables in dwarfdump source so a compiler warning will not kill a --enable-wall build.
Replaced the libdwarf.pdf content, it is now generated by doxygen and latex and has a proper table of contents and index.
Added support for the meson build system.
Added dwarfexample/showsectiongroups.c so one can see libdwarf's interpretation of section groups; making it simple to
use libdwarf when section groups are important (relevant for Split Dwarf and COMDAT sections).
libdwarf version 0.3.3
Release fixes a n assign offset = offset; which with recent clang causes
a build with --enable-wall to fail.