[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/25018] New: readelf crash on 32bits (at least i386 and arm
From: |
costamagnagianfranco at yahoo dot it |
Subject: |
[Bug binutils/25018] New: readelf crash on 32bits (at least i386 and armhf) |
Date: |
Thu, 19 Sep 2019 07:42:01 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=25018
Bug ID: 25018
Summary: readelf crash on 32bits (at least i386 and armhf)
Product: binutils
Version: 2.33 (HEAD)
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: binutils
Assignee: unassigned at sourceware dot org
Reporter: costamagnagianfranco at yahoo dot it
Target Milestone: ---
Created attachment 11996
--> https://sourceware.org/bugzilla/attachment.cgi?id=11996&action=edit
example of failing file
I already reported to Ubuntu
https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/1844119
This is a regression started after binutils_2.32.51.20190821-1
and before 2.32.51.20190905-0
so this is the changelog of changes in bfd
+2019-09-05 Alan Modra <address@hidden>
+
+ * elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
+ in second instruction.
+ (ppc64_elf_relocate_section): Likewise.
+
+2019-09-05 Alan Modra <address@hidden>
+
+ PR 24955
+ * libbfd-in.h (bfd_strdup): New inline function.
+ * archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup. Close
+ bfd on error.
+ * elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
+ * opncls.c (bfd_fopen): Use bfd_strdup. Close fd and stream
+ on error.
+ (bfd_openstreamr): Use bfd_strdup.
+ (bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
+ * plugin.c (try_load_plugin): Use bfd_malloc.
+ * libbfd.h: Regenerate.
+
+2019-09-02 Alan Modra <address@hidden>
+
+ PR 11983
+ * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Free debug_filename
+ on success. Tidy.
+ (read_alt_indirect_string): Likewise.
+ (read_alt_indirect_ref): Likewise.
+
+2019-08-31 Jim Wilson <address@hidden>
+
+ PR 23825
+ * elfnn-riscv.c (riscv_elf_create_dynamic_sections): Add SEC_LOAD,
+ SEC_DATA, and SEC_HAS_CONTENTS to .tdata.dyn section.
+
+2019-08-30 Jim Wilson <address@hidden>
+
+ * elfnn-riscv.c (riscv_elf_relocate_section): For unresolvable reloc
+ error, call bfd_set_error, set ret to FALSE, and goto out label.
+
+2019-08-30 H.J. Lu <address@hidden>
+
+ PR ld/24951
+ * archive.c (_bfd_get_elt_at_filepos): Copy BFD_COMPRESS,
+ BFD_DECOMPRESS and BFD_COMPRESS_GABI flags for thin archive.
+
+2019-08-29 Alan Modra <address@hidden>
+
+ PR 24697
+ * elf32-ppc.c (ppc_elf_check_relocs): Call bad_shared_reloc
+ when !bfd_link_executable for R_PPC_EMB_SDA2I16 and
+ R_PPC_EMB_SDA2REL. Don't call bad_shared_reloc for any other
+ reloc.
+
+2019-08-29 Alan Modra <address@hidden>
+
+ * elf64-ppc.c (xlate_pcrel_opt): Add poff parameter. Allow offset
+ on second insn, return it in poff.
+ (ppc64_elf_relocate_section): Add offset to paddi addend for
+ PCREL_OPT.
+
+2019-08-28 Jim Wilson <address@hidden>
+
+ * elfnn-riscv.c (_bfd_riscv_relax_lui): Add check to exclude abs
+ section when setting max_alignment. Update comment.
+ (_bfd_riscv_relax_pc): Likewise.
+
+2019-08-29 Alan Modra <address@hidden>
+
+ PR 24891
+ * bfd.c (struct bfd): Add no_element_cache.
+ * archive.c (_bfd_get_elt_at_filepos): Don't add element to
+ archive cache when no_element_cache.
+ (bfd_generic_archive_p): Set no_element_cache when opening first
+ element to check format. Close first element too.
+ (do_slurp_bsd_armap): Don't zero ardata->cache here.
+ * bfd-in2.h: Regenerate.
+
+2019-08-24 Alan Modra <address@hidden>
+
+ * elf64-ppc.c (ppc64_elf_edit_toc): Exclude undefined weak
+ symbols from GOT optimisation.
+
+2019-08-23 Stafford Horne <address@hidden>
+
+ * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Use correct value for
+ PLT GOT entries.
+
+2019-08-23 Nick Clifton <address@hidden>
+
+ PR 24456
+ * elf.c (bfd_section_from_shdr): Issue an informative warning
+ message and continue processing other sections after encountering
+ a reloc section for a section which already has other relocs
+ associated with it.
+
+2019-08-23 Alan Modra <address@hidden>
+
+ PR 24933
+ * elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Don't exit
+ on error without freeing plts[] contents.
+
+2019-08-22 Dennis Zhang <address@hidden>
+
+ * cpu-arm.c: New entries for Cortex-M35P, Cortex-A77, Cortex-A76AE.
+
+2019-08-22 Nick Clifton <address@hidden>
+
+ PR 24922
+ * pei-x86_64.c (pex64_xdata_print_uwd_codes): Add checks before
+ reading data from extra records.
+
+2019-08-22 Tamar Christina <address@hidden>
+
+ PR ld/24601
+ * elfnn-aarch64.c (aarch64_relocate): Handle weak TLS and undefined
TLS.
+ Also Pass input_bfd to _bfd_aarch64_elf_resolve_relocation.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Use it.
+ * elfxx-aarch64.h (_bfd_aarch64_elf_resolve_relocation): Emit warning
+ for weak TLS.
+
+2019-08-22 Alan Modra <address@hidden>
+
+ * elf32-arm.c (cmse_scan): Don't use ARM_GET_SYM_CMSE_SPCL,
+ instead recognize CMSE_PREFIX in symbol name.
+ (elf32_arm_gc_mark_extra_sections): Likewise.
+ (elf32_arm_filter_cmse_symbols): Don't test ARM_GET_SYM_CMSE_SPCL.
+ (elf32_arm_swap_symbol_in): Don't invoke ARM_SET_SYM_CMSE_SPCL.
and the full diff between good and bad
http://launchpadlibrarian.net/440335350/binutils_2.32.51.20190821-1ubuntu1_2.32.51.20190905-0ubuntu1.diff.gz
This is the stacktrace
<65c00> DW_AT_external : 1
<65c00> DW_AT_name : (indirect string, offset: 0x1d277): _M_get_allocator
<65c04> DW_AT_decl_file : 2
<65c05> DW_AT_decl_line : 290
<65c07> DW_AT_decl_column : 7
<65c08> DW_AT_linkage_name: (indirect string, offset: 0xdb15):
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_get_allocatorEv
Program received signal SIGSEGV, Segmentation fault.
0x56596128 in read_leb128 (data=0x87a81712 <error: Cannot access memory at
address 0x87a81712>, length_return=0xffffd014, sign=0, end=0xf7dbecef "") at
../../binutils/dwarf.c:336
336 ../../binutils/dwarf.c: No such file or directory.
(gdb) bt full
#0 0x56596128 in read_leb128 (data=0x87a81712 <error: Cannot access memory at
address 0x87a81712>, length_return=0xffffd014, sign=0, end=0xf7dbecef "") at
../../binutils/dwarf.c:336
result = 0
num_read = 0
shift = 0
byte = 0 '\000'
#1 0x56599e50 in read_uleb128 (end=0xf7dbecef "", length_return=<optimized
out>, data=0x87a81711 <error: Cannot access memory at address 0x87a81711>) at
../../binutils/dwarf.c:2005
No locals.
#2 get_type_signedness (start=start@entry=0xf7cd1010 "\266X\006",
data=0x87a81711 <error: Cannot access memory at address 0x87a81711>,
end=end@entry=0xf7dbecef "", pointer_size=4, offset_size=4,
dwarf_version=4, is_signed=0xffffd190, is_nested=1) at
../../binutils/dwarf.c:2005
abbrev_number = <optimized out>
bytes_read = 0
entry = <optimized out>
attr = <optimized out>
#3 0x56599f50 in get_type_signedness (start=start@entry=0xf7cd1010 "\266X\006",
data=0xf7ce1238 "", end=end@entry=0xf7dbecef "", pointer_size=4, offset_size=4,
dwarf_version=4, is_signed=0xffffd190,
is_nested=0) at ../../binutils/dwarf.c:2045
uvalue = <optimized out>
abbrev_number = <optimized out>
bytes_read = 1
entry = <optimized out>
attr = 0x56640530
#4 0x5659b968 in read_and_display_attr_value (attribute=attribute@entry=73,
form=form@entry=19, implicit_const=-1, start=0xf7cd1010 "\266X\006",
data=<optimized out>, end=0xf7dbecef "",
cu_offset=415930, pointer_size=4, offset_size=4, dwarf_version=<optimized
out>, debug_info_p=0x0, do_loc=<optimized out>, section=0x56617880
<debug_displays+192>, this_set=0x0,
delimiter=<optimized out>, level=<optimized out>) at
../../binutils/dwarf.c:2732
is_signed = 0
uvalue = 66082
block_start = <optimized out>
orig_data = 0xf7d36c1c "\"\002\001"
bytes_read = 4160392480
__PRETTY_FUNCTION__ = "read_and_display_attr_value"
#5 0x5659efb4 in read_and_display_attr (level=<optimized out>, this_set=0x0,
section=0x56617880 <debug_displays+192>, do_loc=0, debug_info_p=0x0,
dwarf_version=4, offset_size=<optimized out>,
pointer_size=4, cu_offset=415930, end=0xf7dbecef "", data=0xf7d36c1c
"\"\002\001", start=0xf7cd1010 "\266X\006", implicit_const=<optimized out>,
form=19, attribute=<optimized out>)
at ../../binutils/dwarf.c:3119
No locals.
#6 process_debug_info (section=0x56617880 <debug_displays+192>, file=<optimized
out>, abbrev_sec=abbrev, do_loc=0, do_types=<optimized out>) at
../../binutils/dwarf.c:3646
bytes_read = 1
die_offset = <optimized out>
do_printing = 1
abbrev_number = <optimized out>
entry = 0x5663e9b0
attr = <optimized out>
debug_info_p = <optimized out>
hdrptr = <optimized out>
sec_off = <optimized out>
offset_size = 4
signature_low = 0
tags = 0xf7d36c1c "\"\002\001"
signature_high = 0
this_set = 0x0
abbrev_base = <optimized out>
abbrev_size = <optimized out>
initial_length_size = <optimized out>
compunit = {cu_length = <optimized out>, cu_version = 4,
cu_abbrev_offset = <optimized out>, cu_pointer_size = <optimized out>,
cu_unit_type = <optimized out>}
level = <optimized out>
last_level = 4
saved_level = -1
cu_offset = 415930
type_offset = <optimized out>
start = <optimized out>
end = 0xf7dbecef ""
section_begin = <optimized out>
unit = 1
num_units = <optimized out>
__PRETTY_FUNCTION__ = "process_debug_info"
#7 0x5658b464 in display_debug_section (filedata=<optimized out>,
section=0x566202b0, shndx=30) at ../../binutils/readelf.c:14291
secondary = <optimized out>
id = info
display = 0x56617880 <debug_displays+192>
sec = 0x56617880 <debug_displays+192>
length = <optimized out>
i = 3
name = <optimized out>
print_name = <optimized out>
result = 1
name = <optimized out>
print_name = <optimized out>
length = <optimized out>
result = <optimized out>
i = <optimized out>
id = <optimized out>
display = <optimized out>
sec = <optimized out>
secondary = <optimized out>
#8 process_section_contents (filedata=<optimized out>) at
../../binutils/readelf.c:14382
dump = 4 '\004'
section = 0x566202b0
i = 30
res = 1
#9 0x5658c915 in process_section_contents (filedata=0x5661e1d0) at
../../binutils/readelf.c:19999
section = <optimized out>
i = <optimized out>
res = 1
section = <optimized out>
i = <optimized out>
res = <optimized out>
dump = <optimized out>
#10 process_object (filedata=<optimized out>) at ../../binutils/readelf.c:19999
have_separate_files = 0
i = <optimized out>
res = 1
have_separate_files = <optimized out>
i = <optimized out>
res = <optimized out>
__PRETTY_FUNCTION__ = "process_object"
d = <optimized out>
g = <optimized out>
next = <optimized out>
#11 process_object (filedata=<optimized out>) at ../../binutils/readelf.c:19915
have_separate_files = <optimized out>
i = <optimized out>
__PRETTY_FUNCTION__ = "process_object"
d = <optimized out>
g = <optimized out>
next = <optimized out>
#12 0x5655a2a5 in process_file (file_name=0xffffdae6 "libjsoncpp.so.1.8.1") at
../../binutils/readelf.c:20429
filedata = 0x5661e1d0
statbuf = {st_dev = 66306, __pad1 = 1, __st_ino = 2393533, st_mode =
33188, st_nlink = 1, st_uid = 0, st_gid = 0, st_rdev = 0, __pad2 = 39680,
st_size = 2316140, st_blksize = 4096, st_blocks = 4528, st_atim = {tv_sec =
1568630072, tv_nsec = 756767631}, st_mtim = {tv_sec = 1568630063, tv_nsec =
792762404}, st_ctim = {tv_sec = 1568630063, tv_nsec = 792762404}, st_ino =
2393533}
armag = "\177ELF\001\001\001"
ret = 1
filedata = <optimized out>
statbuf = <optimized out>
armag = <optimized out>
ret = <optimized out>
#13 main (argc=<optimized out>, argv=<optimized out>) at
../../binutils/readelf.c:20488
err = <optimized out>
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug binutils/25018] New: readelf crash on 32bits (at least i386 and armhf),
costamagnagianfranco at yahoo dot it <=