Skip to content

Releases: davea42/libdwarf-code

Added a function to the API. Improved code consistency and clarity.

15 Aug 18:20
v0.11.0
285d9d3
Compare
Choose a tag to compare

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

01 Jul 15:30
v0.10.1
45ef8e2
Compare
Choose a tag to compare

Fixes issues in 0.10.0 relating to pkg-config files generated for make install
and the like.

v0.10.0

25 Jun 00:20
v0.10.0
289d0d3
Compare
Choose a tag to compare

DO NOT USE. Defective. Use 0.10.1
Corrected the handling of DWARF5 .debug_rnglists
and .debug_loclists.

Fixed 4 vulnerabilities

02 Apr 22:50
v0.9.2
5e43a5a
Compare
Choose a tag to compare

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.

29 Jan 18:00
Compare
Choose a tag to compare

(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

08 Dec 18:18
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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)