Skip to content

Releases: davea42/libdwarf-code

Version 0.9.0

08 Dec 18:18

Choose a tag to compare

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

09 Oct 20:29

Choose a tag to compare

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

20 May 18:18

Choose a tag to compare

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

20 Feb 16:52

Choose a tag to compare

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

22 Nov 18:55

Choose a tag to compare

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

13 Sep 22:52

Choose a tag to compare

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

25 Jun 17:30

Choose a tag to compare

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

12 Apr 22:40

Choose a tag to compare

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

23 Feb 22:24

Choose a tag to compare

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

29 Jan 01:38

Choose a tag to compare

Release fixes a n assign offset = offset; which with recent clang causes
a build with --enable-wall to fail.