[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug default/25228] New: abidiff: coredump



https://sourceware.org/bugzilla/show_bug.cgi?id=25228

            Bug ID: 25228
           Summary: abidiff: coredump
           Product: libabigail
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: laurent.stacul at amadeus dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

Created attachment 12092
  --> https://sourceware.org/bugzilla/attachment.cgi?id=12092&action=edit
libxml2 built with gcc 6.5.0

I compiled libxml2 version 2.9.7 (http://www.xmlsoft.org/) with gcc 6.5.0. When
I run abidiff with itself, I get a coredump while I don't get the issue when
the same version of libxml2 is built with gcc 8.3.1

The stack I have:

#0  0x00007f54f77e48e3 in dwarf_diecu (die=0x7ffee82041b0,
result=result@entry=0x7ffee8203f60,
address_sizep=address_sizep@entry=0x7ffee8203f44 "",
offset_sizep=offset_sizep@entry=0x7ffee8203f45 "") at libdwP.h:947
947       return cu->sec_idx;
(gdb) bt
#0  0x00007f54f77e48e3 in dwarf_diecu (die=0x7ffee82041b0,
result=result@entry=0x7ffee8203f60,
address_sizep=address_sizep@entry=0x7ffee8203f44 "",
offset_sizep=offset_sizep@entry=0x7ffee8203f45 "") at libdwP.h:947
#1  0x00007f54f7cae2c3 in abigail::dwarf_reader::read_context::get_die_source
(source=@0x7ffee8204020: 3894428416, die=..., this=0x22f32f0) at
abg-dwarf-reader.cc:4126
#2  abigail::dwarf_reader::read_context::get_die_source (this=0x22f32f0,
die=<optimized out>, source=@0x7ffee8204020: 3894428416) at
abg-dwarf-reader.cc:4103
#3  0x00007f54f7c9e5d4 in abigail::dwarf_reader::compare_dies (ctxt=...,
l=0x7ffee82041b0, r=0x7ffee82041d0, Python Exception <class 'IndexError'> list
index out of range:
aggregates_being_compared=std::tr1::unordered_set with 1 element,
update_canonical_dies_on_the_fly=<optimized out>) at abg-dwarf-reader.cc:11581
#4  0x00007f54f7c9eccc in abigail::dwarf_reader::compare_dies (ctxt=...,
l=<optimized out>, r=0x7ffee8204300, Python Exception <class 'IndexError'> list
index out of range:
aggregates_being_compared=std::tr1::unordered_set with 1 element,
update_canonical_dies_on_the_fly=<optimized out>) at abg-dwarf-reader.cc:11899
#5  0x00007f54f7c9f4a7 in abigail::dwarf_reader::compare_dies (ctxt=...,
l=0x7ffee8204df0, r=0x7ffee8204580, Python Exception <class 'IndexError'> list
index out of range:
aggregates_being_compared=std::tr1::unordered_set with 1 element,
update_canonical_dies_on_the_fly=<optimized out>) at abg-dwarf-reader.cc:11874
#6  0x00007f54f7c9f6a5 in abigail::dwarf_reader::compare_dies (ctxt=...,
l=0x7ffee8204df0, r=0x7ffee8204580, update_canonical_dies_on_the_fly=<optimized
out>) at abg-dwarf-reader.cc:12053
#7  0x00007f54f7cc9136 in
abigail::dwarf_reader::read_context::get_or_compute_canonical_die
(this=this@entry=0x22f32f0, die=die@entry=0x7ffee8204df0, canonical_die=...,
where=where@entry=0, die_as_type=die_as_type@entry=true) at
abg-dwarf-reader.cc:4063
#8  0x00007f54f7cc94b3 in
abigail::dwarf_reader::read_context::lookup_artifact_from_die
(this=this@entry=0x22f32f0, die=die@entry=0x7ffee8204df0,
die_as_type=die_as_type@entry=true) at abg-dwarf-reader.cc:4494
#9  0x00007f54f7cc979e in
abigail::dwarf_reader::read_context::lookup_type_from_die
(this=this@entry=0x22f32f0, die=die@entry=0x7ffee8204df0) at
abg-dwarf-reader.cc:4814
#10 0x00007f54f7ca1e33 in abigail::dwarf_reader::build_function_type (ctxt=...,
die=0x7ffee8204df0, is_method=std::tr1::shared_ptr<class
abigail::ir::class_or_union> (empty) = {...}, where_offset=361629) at
abg-dwarf-reader.cc:14268
#11 0x00007f54f7ca3ba4 in abigail::dwarf_reader::build_function_decl (ctxt=...,
die=0x1e8204990, where_offset=361629, fn=std::tr1::shared_ptr<class
abigail::ir::function_decl> (empty) = {...})
    at
/remote/tools/Linux/2.6/1A/toolchain/x86_64-v19.0.34/include/c++/9.2.1/ext/atomicity.h:96
#12 0x00007f54f7c985fb in
abigail::dwarf_reader::build_or_get_fn_decl_if_not_suppressed (result=...,
where_offset=361629, fn_die=0x7ffee8204df0, scope=<optimized out>, ctxt=...) at
/remote/tools/Linux/2.6/1A/toolchain/x86_64-v19.0.34/include/c++/9.2.1/ext/atomicity.h:96
#13 abigail::dwarf_reader::build_ir_node_from_die (ctxt=...,
die=0x7ffee8204df0, scope=<optimized out>, called_from_public_decl=<optimized
out>, where_offset=361629, is_required_decl_spec=false) at
abg-dwarf-reader.cc:16173
#14 0x00007f54f7c9c5e5 in abigail::dwarf_reader::build_ir_node_from_die
(ctxt=..., die=0x7ffee8204df0, called_from_public_decl=<optimized out>,
where_offset=361629) at abg-dwarf-reader.cc:16320
#15 0x00007f54f7cabc1f in
abigail::dwarf_reader::build_translation_unit_and_add_to_ir (address_size=64
'@', die=0x7ffee8204d90, ctxt=...) at abg-dwarf-reader.cc:8731
#16 abigail::dwarf_reader::read_debug_info_into_corpus (ctxt=...) at
abg-dwarf-reader.cc:15610
#17 0x00007f54f7cad0da in abigail::dwarf_reader::read_corpus_from_elf
(ctxt=..., status=@0x7ffee8205198: abigail::dwarf_reader::STATUS_UNKNOWN) at
abg-dwarf-reader.cc:16576
#18 0x0000000000405948 in main (argc=<optimized out>, argv=0x7ffee8205558) at
abidiff.cc:1074

This is reproducible the libabigail 1.6 linked against the latest elfutils
(0.178).

I attach a reproducer.

Simply run:
>  abidiff libxml2.so.2.9.7 libxml2.so.2.9.7

Regards,
Stac

-- 
You are receiving this mail because:
You are on the CC list for the bug.