libdwfl: Don't call realloc with zero in cu.c addraranges.
[platform/upstream/elfutils.git] / NEWS
diff --git a/NEWS b/NEWS
index 3a2cc39..5a06047 100644 (file)
--- a/NEWS
+++ b/NEWS
+Version 0.176
+
+build: Add new --enable-install-elfh option.
+       Do NOT use this for system installs (it overrides glibc elf.h).
+
+backends: riscv improved core file and return value location support.
+
+Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
+      CVE-2019-7664, CVE-2019-7665
+
+Version 0.175
+
+readelf: Handle mutliple .debug_macro sections.
+         Recognize and parse GNU Property notes, NT_VERSION notes
+         and GNU Build Attribute ELF Notes.
+
+strip: Handle SHT_GROUP correctly.
+       Add strip --reloc-debug-sections-only option.
+       Handle relocations against GNU compressed sections.
+
+libdwelf: New function dwelf_elf_begin.
+
+libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE.
+
+backends: RISCV handles ADD/SUB relocations. Handle SHT_X86_64_UNWIND.
+
+Fixes CVE-2018-18310, CVE-2018-18520 and CVE-2018-18521.
+
+Version 0.174
+
+libelf, libdw and all tools now handle extended shnum and shstrndx correctly.
+
+elfcompress: Don't rewrite input file if no section data needs updating.
+             Try harder to keep same file mode bits (suid) on rewrite.
+
+strip: Handle mixed (out of order) allocated/non-allocated sections.
+
+unstrip: Handle SHT_GROUP sections.
+
+backends: RISCV and M68K now have backend implementations to generate CFI based
+          backtraces.
+
+Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403.
+
+Version 0.173
+
+More fixes for crashes and hangs found by afl-fuzz. In particular various
+functions now detect and break infinite loops caused by bad DIE tree cycles.
+
+readelf: Will now lookup the size and signedness of constant value types
+         to display them correctly (and not just how they were encoded).
+
+libdw: New function dwarf_next_lines to read CU-less .debug_line data.
+       dwarf_begin_elf now accepts ELF files containing just .debug_line
+       or .debug_frame sections (which can be read without needing a DIE
+       tree from the .debug_info section).
+       Removed dwarf_getscn_info, which was never implemented.
+
+backends: Handle BPF simple relocations.
+          The RISCV backends now handles ABI specific CFI and knows about
+          RISCV register types and names.
+
+Version 0.172
+
+No functional changes compared to 0.171.
+
+Various bug fixes in libdw and eu-readelf dealing with bad DWARF5 data.
+Thanks to running the afl fuzzer on eu-readelf and various testcases.
+
+eu-readelf -N is ~15% faster.
+
+Version 0.171
+
+DWARF5 and split dwarf, including GNU DebugFission, are supported now.
+Data can be read from the new DWARF sections .debug_addr, .debug_line_str,
+.debug_loclists, .debug_str_offsets and .debug_rnglists.  Plus the new
+DWARF5 and GNU DebugFission encodings of the existing .debug sections.
+Also in split DWARF .dwo (DWARF object) files.  This support is mostly
+handled by existing functions (dwarf_getlocation*, dwarf_getsrclines,
+dwarf_ranges, dwarf_form*, etc.) now returning the data from the new
+sections and data formats.  But some new functions have been added
+to more easily get information about skeleton and split compile units
+(dwarf_get_units and dwarf_cu_info), handle new attribute data
+(dwarf_getabbrevattr_data) and to keep references to Dwarf_Dies
+that might come from different sections or files (dwarf_die_addr_die).
+
+Not yet supported are .dwp (Dwarf Package) and .sup (Dwarf Supplementary)
+files, the .debug_names index, the .debug_cu_index and .debug_tu_index
+sections. Only a single .debug_info (and .debug_types) section are
+currently handled.
+
+readelf: Handle all new DWARF5 sections.
+         --debug-dump=info+ will show split unit DIEs when found.
+         --dwarf-skeleton can be used when inspecting a .dwo file.
+        Recognizes GNU locviews with --debug-dump=loc.
+
+libdw: New functions dwarf_die_addr_die, dwarf_get_units,
+       dwarf_getabbrevattr_data and dwarf_cu_info.
+       libdw will now try to resolve the alt file on first use of
+       an alt attribute FORM when not set yet with dwarf_set_alt.
+       dwarf_aggregate_size() now works with multi-dimensional arrays.
+
+libdwfl: Use process_vm_readv when available instead of ptrace.
+
+backends: Add a RISC-V backend.
+
+There were various improvements to build on Windows.
+The sha1 and md5 implementations have been removed, they weren't used.
+
+Version 0.170
+
+libdw: Added new DWARF5 attribute, tag, character encoding, language code,
+       calling convention, defaulted member function and macro constants
+       to dwarf.h.
+       New functions dwarf_default_lower_bound and dwarf_line_file.
+       dwarf_peel_type now handles DWARF5 immutable, packed and shared tags.
+       dwarf_getmacros now handles DWARF5 .debug_macro sections.
+
+strip: Add -R, --remove-section=SECTION and --keep-section=SECTION.
+
+backends: The bpf disassembler is now always build on all platforms.
+
+Version 0.169
+
+backends: Add support for EM_PPC64 GNU_ATTRIBUTES.
+          Frame pointer unwinding fallback support for i386, x86_64, aarch64.
+
+translations: Update Polish translation.
+
+Version 0.168
+
+http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/
+
+libelf: gelf_newehdr and gelf_newehdr now return void *.
+
+libdw: dwarf.h corrected the DW_LANG_PLI constant name (was DW_LANG_PL1).
+
+readelf: Add optional --symbols[=SECTION] argument to select section name.
+
+Version 0.167
+
+libasm: Add eBPF disassembler for EM_BPF files.
+
+backends: Add m68k and BPF backends.
+
+ld: Removed.
+
+dwelf: Add ELF/DWARF string table creation functions. dwelf_strtab_init,
+       dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize,
+       dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free.
+
+Version 0.166
+
+config: The default program prefix for the installed tools is now eu-.
+        Use configure --program-prefix="" to not use a program prefix.
+
+Version 0.165
+
+elfcompress: New utility to compress or decompress ELF sections.
+
+readelf: Add -z,--decompress option.
+
+libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr
+        and gelf_getchdr.
+
+libdwelf: New function dwelf_scn_gnu_compressed_size.
+
+config: Add libelf and libdw pkg-config files.
+
+backends: sparc support for core and live backtraces.
+
+translations: Updated Polish translation.
+
+Version 0.164
+
+strip, unstrip: Handle ELF files with merged strtab/shstrtab tables.
+                Handle missing SHF_INFO_LINK section flags.
+
+libelf: Use int64_t for offsets in libelf.h instead of loff_t.
+
+libdw: dwarf.h Add preliminary DWARF5 DW_LANG_Haskell.
+
+libdwfl: dwfl_standard_find_debuginfo now searches any subdir of the binary
+         path under the debuginfo root when the separate debug file couldn't
+         be found by build-id.
+         dwfl_linux_proc_attach can now be called before any Dwfl_Modules
+         have been reported.
+
+backends: Better sparc and sparc64 support.
+
+translations: Updated Ukrainian translation.
+
+Provide default-yama-scope subpackage.
+
+Version 0.163
+
+Bug fixes only, no new features.
+
+Version 0.162
+
+libdw: Install new header elfutils/known-dwarf.h.
+       dwarf.h Add preliminary DWARF5 constants DW_TAG_atomic_type,
+       DW_LANG_Fortran03, DW_LANG_Fortran08. dwarf_peel_type now also
+       handles DW_TAG_atomic_type.
+
+addr2line: Input addresses are now always interpreted as hexadecimal
+           numbers, never as octal or decimal numbers.
+           New option -a, --addresses to print address before each entry.
+           New option -C, --demangle to show demangled symbols.
+           New option --pretty-print to print all information on one line.
+
+ar: CVE-2014-9447 Directory traversal vulnerability in ar extraction.
+
+backends: x32 support.
+
+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.
+
+Version 0.160
+
+libdw: New functions dwarf_cu_getdwarf, dwarf_cu_die.
+       dwarf.h remove non-existing DW_TAG_mutable_type.
+
+libdwfl: Handle LZMA .ko.xz compressed kernel modules.
+
+unstrip: New option -F, --force to combining files even if some ELF headers
+         don't seem to match.
+
+backends: Handle ARM THUMB functions. Add support for ppc64le ELFv2 abi.
+
+Version 0.159
+
+stack: New option -d, --debugname to lookup DWARF debuginfo name for frame.
+       New option -i, --inlines to show inlined frames using DWARF debuginfo.
+
+libdwelf: New libdwelf.h header for libdw.so DWARF ELF Low-level Functions.
+          New function dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink,
+         and dwelf_elf_gnu_build_id.
+
+libdw: Support for DWZ multifile forms DW_FORM_GNU_ref_alt and
+       DW_FORM_GNU_strp_alt is now enabled by default and no longer
+       experimental. Added new functions dwarf_getalt and dwarf_setalt
+       to get or set the alternative debug file used for the alt FORMs.
+       The dwfl_linux_proc_find_elf callback will now find ELF from
+       process memory for (deleted) files if the Dwfl has process state
+       attached.
+
+libdwfl: The dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo
+         functions will now try to resolve and set the alternative debug file.
+
+backends: Add CFI unwinding for arm. Relies on .debug_frame.
+          Add arm process initial register state compatible mode to AARCH64.
+          Add aarch64 native and core unwind support.
+
+other: All separate elfutils-robustify patches have been merged.
+       CVE-2014-0172 Check overflow before calling malloc to uncompress data.
+
+Version 0.158
+
+libdwfl: dwfl_core_file_report has new parameter executable.
+         New functions dwfl_module_getsymtab_first_global,
+         dwfl_module_getsym_info and dwfl_module_addrinfo.
+         Added unwinder with type Dwfl_Thread_Callbacks, opaque types
+         Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state,
+         dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
+         dwfl_thread_state_registers, dwfl_thread_state_register_pc,
+         dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes
+         and dwfl_frame_pc.
+
+addr2line: New option -x to show the section an address was found in.
+
+stack: New utility that uses the new unwinder for processes and cores.
+
+backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64.
+          aarch64 support.
+
+Version 0.157
+
+libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
+       and dwarf_getlocation_die.
+
+readelf: Show contents of NT_SIGINFO and NT_FILE core notes.
+
+addr2line: Support -i, --inlines output option.
+
+backends: abi_cfi hook for arm, ppc and s390.
+
 Version 0.156
 
 lib: New macro COMPAT_VERSION_NEWPROTO.
-     Fix pread and pwrite if they return incomplete data.
-
-libdw: Fix DW_CFA_expression parsing of initial pushed value.
-       Fix false error return on no matching CFI from __libdw_find_fde.
-       Fix uninitialized register contents memory in execute_cfi.
-       Handle GNU extension opcodes in dwarf_getlocation.
-       Handle FORM_GNU_strp_alt for files with string data only in dwz file.
-       srcfiles and srclines fixes for partial_units.
-       dwarf_getsrclines mark highest address as end_sequence.
-       dwarf_getsrclines don't set end_sequence when there are no lines.
-       libdw_visit_scopes: Don't recurse into imported unit children.
-       getcfi_scn_eh_frame: Don't crash when .eh_frame bits aren't there.
-       Don't blow up stack in dwarf_getsrclines with lots of lines.
-
-libdwfl: dwfl_report_elf has new parameter add_p_vaddr.
-         Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
-         Fix bias for vDSOs from core files.
-         Fix bias for DSOs loaded from core file with build-id.
-         Fix loading PIEs specified with both -e and --core.
-         Fix double free in Linux kernel modules reporting.
+
+libdw: Handle GNU extension opcodes in dwarf_getlocation.
+
+libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
          Add minisymtab support.
-         Fix 64-bit -> 32-bit vDSO reporting.
-         Try opening files with all installed compression libraries.
-         srcfiles and srclines fixes for partial_units.
-         Fix dwfl_report_elf BASE alignment.
          Add parameter add_p_vaddr to dwfl_report_elf.
          Use DT_DEBUG library search first.
-         Don't assert on mod->e_type in __libdwfl_relocate_value.
-
-libelf: Handle unaligned accesses.
 
 libebl: Handle new core note types in EBL.
-        Fix default_abi_cfi.
 
-backends: Fix FPREGSET_SIZE for ARM, interpret NT_ARM_VFP.
+backends: Interpret NT_ARM_VFP.
           Implement core file registers parsing for s390/s390x.
-          Check type DIE exists before calling dwarf_tag ().
 
 readelf: Add --elf-section input option to inspect an embedded ELF file.
          Add -U, --unresolved-address-offsets output control.
          Add --debug-dump=decodedline support.
          Accept version 8 .gdb_index section format.
-         Fix displaying bitmaps.
          Adjust output formatting width.
-         Fix DW_OP_skip and DW_OP_bra targets calculation.
-         Fix printing .eh_frame pcrel addresses.
-         Fix displayed location list addresses base.
          When highpc is in constant form print it also as address.
          Display raw .debug_aranges. Use libdw only for decodedaranges.
-         Format first DW_OP_GNU_implicit_pointer argument as DIE offset.
-         Print actual DW_OP_GNU_parameter_ref DIE offset.
-         Print actual DIE offsets of DW_OP_GNU_<type> ops.
-
-nm: Fix invalid symbol name message output.
-
-ar: Fix memory corruption.
 
 elflint: Add __bss_start__ to the list of allowed symbols.