No change in API in this release.
* Added functions dwarf_lvn_name_direct() dwarf_lvn_name()
dwarf_lvn_table_entry() to allow complete reading of
DWARF6 DW_AT_language_version attributes.
* Fixed issues reading corrupted (fuzzed) Apple Mach-o
object files: now the code immediately returns an error
instead of seeming stuck.
* Fixed issues building with gcc option -std=c99 and the like.
* Corrected a bug reading line table data that used forms
similar to DWARF5 DW_FORM_strx.
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=74
* Removed heuristic checs for decompression reasonableness as
they failed on some real object files.
* Corrected handling and reporting of the DWARF6 attributes
DW_AT_language_name and DW_AT_language_version.
* An object with DWARF and GNU debuglink data and nothing else
is now correctly accepted and reported.
- Update to version 2.0.0
* Fixed a longstanding bug in configure.ac which began to cause
builds to fail with recent autoconf.
* Updated the error report (for zlib, zstd) when decompression
exceeds a heuristic limit.
- Update to version 0.12
* Improved the code in dwarfdump checking for valid address
ranges (-k options).
* Added the capability of using mmap instead of malloc in
reading section data and functions allowing reporting on
section malloc/mmap.
* Now detects duplicated attributes and generates an error and
provides a way to suppress the detection (for cases where one
needs to analyze an object that was created with a broken
compiler).
- Add patch:
* libdwarf-both.patch
- Use meson instead of autotools
- Build dwarfgen
- Run testsuite
- Use %ldconfig_scriptlets macro
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=72
- update to 0.11.1:
* Updated document date to today.
* Each file has 1 to 3 trivial casts added and all
involve things whose known range ensures
the change is ok (boolean, address-size, and other known
things)..
* Removing trailing whitespace and fixing a couple
indent mistakes.
* Now checks and reports on all DIE references, meaning
the DWARF reference class.
* Now uses a macro for 0x%08llx clarifying printf on
Dwarf_Unsigned.
* Also removes an accidental trailing space in printed
output.
* In one place in code added yesterday an explicit dealloc
of a Dwarf_Error was omitted. Found by the usual
export NLIZE=y export SUPPRESSDEALLOCTREE=y
regressiontest.
* The code refactoed to print attributes:
DW_AT_specification:
DW_AT_abstract_origin:
DW_AT_type:
is now in place and this commit
deletes the lines extracted to the new source file.
* build: fix arguments order in calloc calls (#258)
* Initial addition of ossfuzz 70753 and ossfuzz 70763
OBS-URL: https://build.opensuse.org/request/show/1265497
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=37
* Updated document date to today.
* Each file has 1 to 3 trivial casts added and all
involve things whose known range ensures
the change is ok (boolean, address-size, and other known
things)..
* Removing trailing whitespace and fixing a couple
indent mistakes.
* Now checks and reports on all DIE references, meaning
the DWARF reference class.
* Now uses a macro for 0x%08llx clarifying printf on
Dwarf_Unsigned.
* Also removes an accidental trailing space in printed
output.
* In one place in code added yesterday an explicit dealloc
of a Dwarf_Error was omitted. Found by the usual
export NLIZE=y export SUPPRESSDEALLOCTREE=y
regressiontest.
* The code refactoed to print attributes:
DW_AT_specification:
DW_AT_abstract_origin:
DW_AT_type:
is now in place and this commit
deletes the lines extracted to the new source file.
* build: fix arguments order in calloc calls (#258)
* Initial addition of ossfuzz 70753 and ossfuzz 70763
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=70
- update to 0.11.0:
* Identifies git fix id now for ossfuzz 70721
DW202407-010
* Correcting use-after-free with a specific corrupted
DWARF section.
* This simplfies getting correct cooked
addresses for entries from .debug_ranges
* The new code about .debug_ranges had
small leaks when the library was told
not to record or clean-up most memory allocations.
Shown by -fsanitize.
* Fixed a mistake in examplev, .debug_ranges
* Added new argument to print_ranges_list_to_extra()
so it can print both raw and cooked values.
* Now calulates the cooked value of .debug_ranges
and prints both raw and cooked values.
* New date, some Dwarf_Ranges doc has been updated
in libdwarf.
* Added clarifying comment paragraphs about Dwarf_Ranges
* Final on the rnglists ossfuzz issues so far.
* ossfuzz 70246 DW202407-002 fixed.
* Removing esb_append_printf() which is the last use of *sprintf()
* ossfuzz 70244 fixed DW202407-001
* Removing esb_append_printf() as it is no
longer necessary.
* Added blank line after d= semantic version
* Fixed trailing whitespace and indents.
* Refine the information on rnglists base with
* cc_rnglists_base_via_at (similar to loclists)
* Added cc_loclists_base_via_at and
OBS-URL: https://build.opensuse.org/request/show/1194555
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=36
* Identifies git fix id now for ossfuzz 70721
DW202407-010
* Correcting use-after-free with a specific corrupted
DWARF section.
* This simplfies getting correct cooked
addresses for entries from .debug_ranges
* The new code about .debug_ranges had
small leaks when the library was told
not to record or clean-up most memory allocations.
Shown by -fsanitize.
* Fixed a mistake in examplev, .debug_ranges
* Added new argument to print_ranges_list_to_extra()
so it can print both raw and cooked values.
* Now calulates the cooked value of .debug_ranges
and prints both raw and cooked values.
* New date, some Dwarf_Ranges doc has been updated
in libdwarf.
* Added clarifying comment paragraphs about Dwarf_Ranges
* Final on the rnglists ossfuzz issues so far.
* ossfuzz 70246 DW202407-002 fixed.
* Removing esb_append_printf() which is the last use of *sprintf()
* ossfuzz 70244 fixed DW202407-001
* Removing esb_append_printf() as it is no
longer necessary.
* Added blank line after d= semantic version
* Fixed trailing whitespace and indents.
* Refine the information on rnglists base with
* cc_rnglists_base_via_at (similar to loclists)
* Added cc_loclists_base_via_at and
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=68
- update to 0.9.0:
* Added support for reading Apple MacOS universal binaries.
* Added callers access to certain fields from object files
(for all three supported object formats), and
* added the --print-machine-arch option to dwarfdump to show the
fields.
* Three functions were added to the API, see the Changes section
of the latest documentation or in libdwarf.pdf in the release.
No functions were deleted or had their meaning changed.
* Vulnerabilities found by fuzzing were fixed.
* See https://www.prevanders.net/dwarfbug.html for vulnerability
details.
OBS-URL: https://build.opensuse.org/request/show/1135481
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=33
* Added support for reading Apple MacOS universal binaries.
* Added callers access to certain fields from object files
(for all three supported object formats), and
* added the --print-machine-arch option to dwarfdump to show the
fields.
* Three functions were added to the API, see the Changes section
of the latest documentation or in libdwarf.pdf in the release.
No functions were deleted or had their meaning changed.
* Vulnerabilities found by fuzzing were fixed.
* See https://www.prevanders.net/dwarfbug.html for vulnerability
details.
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=62
- update to 0.8.0:
* The release fixes many vulnerabilities from corrupt DWARF
and/or corrupt Elf. Two new functions are added for DWARF Frame
access to get the correct sign of an argument (the pre-existing
functions remain in place and working avoiding any need for
recompilation or relinking of user code).
now pass section indexes as Dwarf_Unsigned instead of Dwarf_Half.
to call due to argument list requirements, and never worked.
* The dealloc required for dwarf_offset_list() was incorrect,
documented in libdwarf.pdf and in the on-line html.
users accessing near-identical builds).
and the interface was changed to make it easier to use.
- replace symlink by directory with hardlinks (bsc#1196198)
* Release fixes a n assign offset = offset;
- drop libdwarf-gcc11.patch, libdwarf-gcc11-fixup.patch: upstream
- libdwarf-gcc11.patch: refresh with upstream patch
- update to 20201020:
- move libdwarf headers back to the old location
are known to work on Linux(Ubuntu on x86_64 and i686),
for dwarfdump/libdwarf (the current dwarfdump
make check actually does run dwarfdump and
or relocation record data are not available in a
--disable-libelf build.
available in a --disable-libelf build.
on sourceforge) to get more detail about the problems found.
ensures the build won't use libelf or elf.h anywhere.
to access DWARF information.
No elf.h, libelf.h or zlib.h should be present.
no longer any two-stage aspect of the build.
OBS-URL: https://build.opensuse.org/request/show/1127452
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=32
* The release fixes many vulnerabilities from corrupt DWARF
and/or corrupt Elf. Two new functions are added for DWARF Frame
access to get the correct sign of an argument (the pre-existing
functions remain in place and working avoiding any need for
recompilation or relinking of user code).
now pass section indexes as Dwarf_Unsigned instead of Dwarf_Half.
to call due to argument list requirements, and never worked.
* The dealloc required for dwarf_offset_list() was incorrect,
documented in libdwarf.pdf and in the on-line html.
users accessing near-identical builds).
and the interface was changed to make it easier to use.
- replace symlink by directory with hardlinks (bsc#1196198)
* Release fixes a n assign offset = offset;
- drop libdwarf-gcc11.patch, libdwarf-gcc11-fixup.patch: upstream
- libdwarf-gcc11.patch: refresh with upstream patch
- update to 20201020:
- move libdwarf headers back to the old location
are known to work on Linux(Ubuntu on x86_64 and i686),
for dwarfdump/libdwarf (the current dwarfdump
make check actually does run dwarfdump and
or relocation record data are not available in a
--disable-libelf build.
available in a --disable-libelf build.
on sourceforge) to get more detail about the problems found.
ensures the build won't use libelf or elf.h anywhere.
to access DWARF information.
No elf.h, libelf.h or zlib.h should be present.
no longer any two-stage aspect of the build.
+ Fixes libdwarf/dwarfdump vulnerabilities related to detecting
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=60
- update to 0.7.0:
* The release fixes more than 50 vulnerabilities from corrupt
DWARF and/or corrupt Elf.
* Elf section counts can exceed 16 bits (on linux see man 5 elf)
so some function prototype members of struct
Dwarf_Obj_Access_Methods_a_s changed. Specifically,
om_get_section_info() om_load_section(), and om_relocate_a_section()
now pass section indexes as Dwarf_Unsigned instead of Dwarf_Half.
* Two functions have been removed from libdwarf.h and the library:
dwarf_dnames_abbrev_by_code() and dwarf_dnames_abbrev_form_by_index().
* dwarf_dnames_abbrev_by_code() is slow and pointless. Use either
dwarf_dnames_name() or dwarf_dnames_abbrevtable() instead,
depending on what you want to accomplish.
* dwarf_dnames_abbrev_form_by_index() is not needed, was difficult
to call due to argument list requirements, and never worked.
OBS-URL: https://build.opensuse.org/request/show/1089639
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=31
* The release fixes more than 50 vulnerabilities from corrupt
DWARF and/or corrupt Elf.
* Elf section counts can exceed 16 bits (on linux see man 5 elf)
so some function prototype members of struct
Dwarf_Obj_Access_Methods_a_s changed. Specifically,
om_get_section_info() om_load_section(), and om_relocate_a_section()
now pass section indexes as Dwarf_Unsigned instead of Dwarf_Half.
* Two functions have been removed from libdwarf.h and the library:
dwarf_dnames_abbrev_by_code() and dwarf_dnames_abbrev_form_by_index().
* dwarf_dnames_abbrev_by_code() is slow and pointless. Use either
dwarf_dnames_name() or dwarf_dnames_abbrevtable() instead,
depending on what you want to accomplish.
* dwarf_dnames_abbrev_form_by_index() is not needed, was difficult
to call due to argument list requirements, and never worked.
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=58
- update to 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
* https://newreleases.io/github/davea42/libdwarf-code?version=v0.6.0
OBS-URL: https://build.opensuse.org/request/show/1068066
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=30
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
* https://newreleases.io/github/davea42/libdwarf-code?version=v0.6.0
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=56
- update to 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)
OBS-URL: https://build.opensuse.org/request/show/1039641
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=54
- update to 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).
- drop fix-CVE-2022-32200.patch (upstream)
OBS-URL: https://build.opensuse.org/request/show/989491
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=26
* 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).
- drop fix-CVE-2022-32200.patch (upstream)
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=47
- update to 0.4.0:
* Removed the unused Dwarf_Error argument from dwarf_return_empty_pubnames()
as the function can only return DW_DLV_OK. dwarf_xu_header_free() renamed
to dwarf_dealloc_xu_header(). dwarf_gdbindex_free() renamed
to dwarf_dealloc_gdbindex(). dwarf_loc_head_c_dealloc renamed to
dwarf_dealloc_loc_head_c().
* dwarf_get_location_op_value_d() renamed to dwarf_get_location_op_value_c(),
and 3 pointless arguments removed. The dwarf_get_location_op_value_d
version and the three arguments were added for DWARF5 in libdwarf20210528
but the change was a mistake. Now reverted to the previous version.
* The .debug_names section interfaces have changed. Added
dwarf_dnames_offsets() to provide details of facts useful in problems
reading the section. dwarf_dnames_name() now does work
and the interface was changed to make it easier to use.
OBS-URL: https://build.opensuse.org/request/show/972417
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=41
- update to 0.3.3:
* Release fixes a n assign offset = offset;
* Fixes a bug in LEB value reading of some values in the very rare case the
compiler has emitted padding in the LEB
* Has improvements in detecting corrupt object files (Elf, MachO, and PE) and
one new function that is only significant for those using an LLVM feature
for Heterogenous Debugging. Passes Coverity Scan with zero issues.
- drop libdwarf-gcc11.patch, libdwarf-gcc11-fixup.patch: upstream
OBS-URL: https://build.opensuse.org/request/show/954117
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=39
- update to 20201201:
dwarfdump now prints DWARF expression operators each on
its own line. This makes viewing DWARF expressions much
nicer given the increased use of much longer expressions.
Those expression operators that reference DIES are now
followed, verified, and the target DW_TAG and DW_AT_name
are printed. A new dwarfdump.conf command 'option:' lets
one specify option: --format-expr-ops-joined in case you
want the old style DWARF expression operators-on-one-line.
Where the DWARF DIE children nest > nine-deep dwarfdump
switches from indentation by spaces to a nest-level number.
OBS-URL: https://build.opensuse.org/request/show/867800
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libdwarf?expand=0&rev=18
dwarfdump now prints DWARF expression operators each on
its own line. This makes viewing DWARF expressions much
nicer given the increased use of much longer expressions.
Those expression operators that reference DIES are now
followed, verified, and the target DW_TAG and DW_AT_name
are printed. A new dwarfdump.conf command 'option:' lets
one specify option: --format-expr-ops-joined in case you
want the old style DWARF expression operators-on-one-line.
Where the DWARF DIE children nest > nine-deep dwarfdump
switches from indentation by spaces to a nest-level number.
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=30