- Update to version 2.2.0
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/request/show/1309928
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=74
- Update to version 2.1.0
* 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/request/show/1306044
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=72
* 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
* 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
* 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
* 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
* 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
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
* 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
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
libdwarf now reads .debug_gnu_pubtypes & pubnames
(non-standard but gcc creates them in DWARF5)
via a small number of new functions
and dwarfdump --print-debug-gnu prints both sections.
Verifying the .debug_info offsets is not yet done.
Dwarfdump now dumps DWARF5 .debug_rnglists and
.debug_loclists. To handle DWARF5 there are
a small number of new functions. All existing
functions are still supported, but
to read DWARF5 some small changes are required.
In libdwarf see libdwarf2.1.pdf and also see
dwarfdump now takes much less malloc() to work, as measured
by valgrind --tool=massif and massif-visualizer.
A dwarfdump run that did 2.2Gib of malloc/free before the changes
now does 1.4GiB.
libdwarf and dwarfdump now support DWARF5 .debug_rnglists.
The new interfaces are documented in libdwarf/libdwarf2.1.pdf.
The new option to dwarfdump is "--print-raw-rnglists".
The code (dwarfdump/libdwarf), regressiontests,
and readelfobj directories and all their tests
are known to work on Linux(Ubuntu on x86_64 and i686),
FreeBSD, MacOS Catalina (with Apple Command Line Tools),
and IBM s390 (Big Endian!) running Ubuntu Linux.
On Windows-MinGW the full regression tests
have not been tested, but 'make check' works
for dwarfdump/libdwarf (the current dwarfdump
make check actually does run dwarfdump and
checks that dwarfdump basically works).
Now a --disable-libelf configure/build of libdwarf/dwarfdump
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=24
- Update to version 20180129
+ Fixes libdwarf/dwarfdump vulnerabilities related to detecting
corrupt DWARF and includes other small improvements
- Changes from version 20170709
+ Fixes a libdwarf vulnerability
- Changes from version 20170416
+ Begins to support the DWARF5 .debug_names section and other DWARF5 changes.
(not tested, no test cases yet available).
+ Now supports DWARF5 split dwarf sensibly.
The few new function interfaces can be ignored by those not needing split
dwarf support.
+ The tools can now be built with cmake (the default build is still
with configure)
OBS-URL: https://build.opensuse.org/request/show/579030
OBS-URL: https://build.opensuse.org/package/show/devel:tools/libdwarf?expand=0&rev=20