977e84f433
- 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.
Michael Vetter2025-10-10 05:34:06 +00:00
33720f94d5
Accepting request 1306506 from devel:tools
Ana Guerrero2025-09-22 14:41:06 +00:00
f1ee3d5b01
- 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
Marcus Meissner2025-09-22 12:02:17 +00:00
d69b3d93e7
Accepting request 1265497 from devel:tools
Ana Guerrero2025-03-31 09:43:13 +00:00
cb72d6521f
- 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
Dirk Mueller2025-03-30 08:34:50 +00:00
eb9d94037c
- 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
Dirk Mueller2024-08-18 13:11:17 +00:00
fe4e9ba0e1
Accepting request 1178145 from devel:tools
Ana Guerrero2024-06-03 15:43:37 +00:00
1b09f1e46d
Accepting request 1177577 from home:dimstar:Factory
Dirk Mueller2024-06-02 10:17:37 +00:00
aca9199f2c
Accepting request 1142865 from devel:tools
Ana Guerrero2024-01-31 22:54:25 +00:00
eb54e25937
- update to 0.9.1: * "--disable-decompression" tells the build to compile libdwarf and dwarfdump with no reference to the zlib or zstd libraries. * Latest DW_LANG names now present. - build with zstd support
Dirk Mueller2024-01-30 19:57:00 +00:00
82e2bdaf8b
Accepting request 1135481 from devel:tools
Ana Guerrero2023-12-28 22:03:40 +00:00
f155daf87c
- 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.
Dirk Mueller2023-12-28 13:16:25 +00:00
bf5a200dae
Accepting request 1127452 from devel:tools
Ana Guerrero2023-11-19 19:16:30 +00:00
8d4d347de2
- 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. + Fixes libdwarf/dwarfdump vulnerabilities related to detecting
Dirk Mueller2023-11-18 17:12:25 +00:00
3ec58396e9
- 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.
Dirk Mueller2023-05-29 19:24:50 +00:00
825c8e0962
- 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.0Dirk Mueller2023-02-27 21:32:59 +00:00
5c597c3677
- update to 0.4.2: * memory leak fixes * 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.
Dirk Mueller2022-10-03 15:25:03 +00:00
383a44b8bc
Accepting request 989491 from devel:tools
Richard Brown2022-07-18 16:34:15 +00:00
15dc5406af
- 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)
Dirk Mueller2022-07-15 19:12:31 +00:00
b402c1d0c2
- 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.
Dirk Mueller2021-01-29 22:03:26 +00:00
9980b0797d
- update to 20200825 (bsc#1142609, CVE-2019-14249) 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
Dirk Mueller2020-09-02 19:39:11 +00:00