elfutils 0.161 released
Mark Wielaard
mjw at redhat.com
Fri Dec 19 22:05:32 UTC 2014
A new release of elfutils is available now at:
https://fedorahosted.org/releases/e/l/elfutils/0.161/
* NEWS *
Version 0.161
libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
dwarf_peel_type to also provide the sizes of qualified types.
dwarf_getmacros will now serve either of .debug_macro and
.debug_macinfo transparently. New interfaces
dwarf_getmacros_off, dwarf_macro_getsrcfiles,
dwarf_macro_getparamcnt, and dwarf_macro_param are available
for more generalized inspection of macros and their parameters.
dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11,
DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.
Thanks to Hanno Böck and Alexander Cherepanov for running various
fuzzers and reporting crashers in the eu-readelf tool, libelf and libdw
libraries. elfutils should now be a little bit less crashy. But we still
recommend users to be careful processing possibly corrupt ELF and DWARF
files.
* GIT SHORTLOG *
Jan Kratochvil (3):
Fix resolving ELF symbols for live PIDs with deleted files
Add is_executable to Dwfl_Module.
Support note NT_FILE for locating files.
Josh Stone (10):
addr2line: Iterate scopes for inline's parent function
addr2line: Always prefer linkage_name over plain names
libdw: unify die->abbrev lookups
libdw: optimize dwarf_hasattr to just look at abbrev
libdw: save startp/endp boundaries in Dwarf_CU
libdw: Make srclines use a stable sort
libdwfl: Search for the last matching address in lines
tests: Test addr2line -i with lexical blocks present
Add config/compile as installed by automake 1.14
libdw: pre-compute leb128 loop limits
Mark Wielaard (92):
libdwfl: dwfl_segment_report_module use ei_class, ei_data and e_type.
libdw: dwarf_aggregate_size return CU address_size for sizeless pointer/refs.
tests: run-deleted.sh unset VALGRIND_CMD before running deleted.
dwarf.h: Add DW_AT_GNU_deleted.
libdw: Add dwarf_peel_type. Use it in dwarf_aggregate_size.
libelf: Correct shdr size check for (raw) getdata.
readelf: Sanity check hash section contents before processing.
readelf.c (handle_versym): Initialize vername and filename array elements.
libdw: Fix dwarf_getsrclines.c 32bit compile error.
libelf: Use mempcpy not __mempcpy.
libelf: Fix unsigned overflow check in elf_getdata.
libdwfl: find_dynsym don't assume dynamic linker has adjusted DYNAMIC entries.
readelf: Check def == NULL before use in handle_versym.
libdwfl: dwfl_module_getdwarf.c don't use symtab with bogus sh_entsize.
libdwelf: Check the d_buf actually exists in dwelf_elf_gnu_debuglink.
libelf: gelf_getnote check for offset overflow.
readelf: Sanity check CIE unit_length and augmentationlen in debug_frame.
libelf: getdata check 64bit values correctly on 32bit arch.
gelf_getnote: Check padding overflow.
readelf: Robustify print_cfa_program.
libelf: Fix handling of (extended) phnum.
libelf: elf_getshdrstrndx cannot use SHN_XINDEX without section headers.
readelf: Warn if ptr_size is not 4 or 8 bytes.
Check elf_strptr didn't fail getting section name.
readelf: When the version chain ends, stop processing the entries.
libelf: Check for overflow in version_xlate elf_cvt_Verdef and elf_cvt_Verneed.
readelf: Fix sanity check of DW_FORM_block length in print_cfa_program
libdwfl: Sanity check the symbol table before use.
dwarf.h: Add DW_AT_noreturn.
dwarf.h: Add DW_LANG_C11, DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.
libelf: elf_getphdrnum sanity check the returned phnum result.
Use elf_getphdrnum instead of accessing ehdr->e_phnum directly.
readelf: print_attributes (-A) robustify and handle non-gnu attributes.
libelf: Copy over any leftover data from src to dest in elf_cvt_note.
readelf: Check length for nexthdr overflow in print_debug_aranges_section.
libelf: Change signed overflow check to unsigned in elf_getdata_rawchunk.
libdw: Don't assert in __libdw_getabbrev when seeing bad DWARF.
libdw: Always check __libdw_find_attr return value.
readelf, libdw: Guard against divide by zero line_range in .debug_line.
readelf: Cast Dwarf_Word length to ptrdiff_t for comparison.
tests: vdsosyms call dwfl_linux_proc_attach.
libdw: Initialize variables in getcfi_gnu_eh_frame.
Add configure --disable-textrelcheck option to enable CC=afl-fuzz on 32bit.
readelf: Don't trash destshdr for STT_SECTION in handle_relocs_rel[a].
libdwfl: Check relocations don't overlap ELF ehdr, shdrs or phdrs.
readelf: Fix overflow check in handle_sysv_hash64.
objdump: Add various sanity checks to guard against corrupted data.
libdw: Add overflow checking to __libdw_form_val_len.
libdwfl: Never relocate value against section zero (load address).
libdwfl: Check actually used ehsize, shentsize and phentsize in relocate.c
readelf: DW_OP_call_ref and DW_OP_GNU_implicit_pointer are invalid for CFA.
readelf: maximum operations per instruction cannot be zero in .debug_line.
readelf: Report invalid data if action table doesn't follow call site table.
readelf: Check count fits and doesn't overflow fptr in handle_file_note.
libdwfl: Check file count overflow in handle_file_note.
libelf: Make sure n * w doesn't overflow in elf_getarsym.
tests: Add an explicit -fasynchronous-unwind-tables for deleted-lib.so.
libelf: Add some ar header sanity checking.
libelf: Correct ELF64 section offset check in file_read_elf.
readelf: Don't print more augmentation characters than there are.
readelf: Check TType base offset and Action table are sane in exception table.
Guard against 64bit unsigned wrap around in (int) compare functions.
libdw: Make sure end of next cu doesn't overflow section data size.
libdwfl: Make sure elf_getdata_rawchunk size_t doesn't overflow find_dynsym.
elfcmp: Make sure Elf32_Word difference doesn't wrap around in int compare.
libdw: Make sure all attributes come with a (fake) CU for bound checks.
libdw: Add get_uleb128 and get_sleb128 bounds checking.
libdw: Unroll the first get_sleb128 step to help the compiler optimize.
libelf: Clear any garbage left in the ar name table.
readelf: Check there is enough room for the DW_LNE_set_address argument
readelf: Make sure there is enough room for reading .debug_line unit_length.
libdw: Add bounds checking to dwarf_getpubnames.
readelf: Add more bounds checks to print_gdb_index_section.
libdw: dwarf_getpubnames set error to DWARF_E_NO_ENTRY for zero entries.
readelf: Don't assert when addr_size or ref_size is not 4 or 8 in print_ops.
readelf: Warn, don't assert, if loclist or rangelist offset is too big.
readelf,libdw: Correct .debug_line overflow check for unit_length.
readelf: Correct overflow check for length in print_debug_aranges_section.
libdw: Make sure there is enough space to read offset in dwarf_getpubnames.
libelf: Check index_size doesn't overflow in elf_getarsym.
libelf: Make sure ar archive long_names len fits in mapped ELF file.
readelf: Print dwarf_errmsg if dwarf_onesrcline or dwarf_linesrc fails.
libdw: Check diridx is valid under DW_LNE_define_file in dwarf_getsrclines.
readelf: Add bounds check before each CFA op that takes an argument.
libdwfl: Make sure symstrdata->d_buf != NULL in relocate resolve_symbol.
tests: Add testfile-macros-0xff.bz2 to EXTRA_DIST.
Prepare 0.161 release.
libdwfl: Remove p_align sanity check from elf_from_memory.
libdwfl: Always try find_dynsym last, also on find_symtab ELF errors.
tests: run-deleted.sh should SKIP if arch doesn't support unwinding.
tests: vdsosyms should not fail for architectures that don't have a vdso.
tests: Don't match libfunc symbol on ppc64 in run-deleted.sh testcase.
Petr Machata (8):
elf_begin sets elf_errno for cases that the file is completely unreadable
Accept DW_AT_GNU_call_site_* as attributes that hold location expressions
Rename read_ubyte_unaligned_inc to read_addr_unaligned_inc
readelf: Fix typo in a check in handle_relocs_rela
Drop unused field struct Dwarf_Files_s.cu
Support .debug_macro
Test cases for .debug_macro support
Change calling convention of dwarf_getmacros to allow opcode 0xff
Ulrich Drepper (1):
avoid scary command output
More information about the elfutils-devel
mailing list