Gentoo Archives: gentoo-alt

From: Markus Duft <mduft@g.o>
To: gentoo-alt@l.g.o
Subject: [gentoo-alt] scanelf on sparc-solaris-5.10
Date: Fri, 27 Nov 2009 09:02:03
Message-Id: 4B0F94C1.7020609@gentoo.org
1 Hey :)
2
3 just asking before i open a bug: i'm having a reproducible scanelf crash
4 while building perl:
5
6 (gdb) r -v -qyRAF '%T %p'
7 var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a
8 Starting program: /tools/gentoo/mduft/toolsbase-2010.0/usr/bin/scanelf
9 -v -qyRAF '%T %p'
10 var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a
11 warning: Temporarily disabling breakpoints for unloaded shared library
12 "/usr/lib/ld.so.1"
13
14 Program received signal SIGSEGV, Segmentation fault.
15 0x00013148 in readelf_buffer (filename=0x46408
16 "var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a:sdbm.o",
17 buffer=0xff3a01ce "\177ELF\001\002\001",
18 buffer_len=7152) at paxelf.c:528
19 528 READELF_HEADER(32)
20 (gdb) bt
21 #0 0x00013148 in readelf_buffer (filename=0x46408
22 "var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a:sdbm.o",
23 buffer=0xff3a01ce "\177ELF\001\002\001",
24 buffer_len=7152) at paxelf.c:528
25 #1 0x0002db94 in scanelf_archive (filename=0xffbfedbd
26 "var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a",
27 fd=6, len=11926) at scanelf.c:1339
28 #2 0x0002de18 in scanelf_file (filename=0xffbfedbd
29 "var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a",
30 st_cache=0xffbfe9dc) at scanelf.c:1377
31 #3 0x0002dee4 in scanelf_dir (path=0xffbfedbd
32 "var/tmp/portage/dev-lang/perl-5.8.8-r6/work/perl-5.8.8/ext/SDBM_File/sdbm/libsdbm.a")
33 at scanelf.c:1401
34 #4 0x0003041c in parseargs (argc=5, argv=0xffbfebfc) at scanelf.c:1959
35 #5 0x00030700 in main (argc=5, argv=0xffbfebfc) at scanelf.c:2028
36 (gdb) lis
37 523 if (invalid > 1) \
38 524 warn("%s: Invalid section header info
39 (%i)", filename, invalid); \
40 525 if (invalid) \
41 526 elf->shdr = NULL; \
42 527 }
43 528 READELF_HEADER(32)
44 529 READELF_HEADER(64)
45 530 /* { char *p; strncpy(elf->basename, (p =
46 strrchr(filename, '/')) == NULL ? "?" : p+1 , sizeof(elf->basename)); } */
47 531
48 532 return elf;
49
50 seems like either scanelf has a bug, or that perl archive is damaged...?
51 from what i see in gdb, is the buffer contents what it is expected to be
52 ("\177ELF\001\002\001")? i think it's off by one, shouldn't ELF be the
53 first bytes (i don't know ELF that well, just PE/COFF, so i might be
54 plain wrong here ;))?
55
56 Cheers, Markus

Replies

Subject Author
Re: [gentoo-alt] scanelf on sparc-solaris-5.10 Fabian Groffen <grobian@g.o>