Date: Tue, 23 Jan 2018 21:27:43 -0500 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: seg fault at src/string/strlen.c:15 On Tue, Jan 23, 2018 at 05:07:32PM -0800, Po-yi Wang wrote: > hi > > I try to compile make-4.1 for i486,ppc,arm targets. > i486 seem ok. "make --version" runs and no problem. > for ppc and arm targets, both seg fault at exactly the same place. > I had to recompile musl-1.1.18 for both with "-g3" to narrow down > the problem. it should be easy to reproduce. here is some outputs: > > [ppc] cd /build/make-4.1; file make > make: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 > (SYSV), statically linked, not stripped > [ppc] cd /build/make-4.1; cp make make-4.1 [ppc] cd > /build/make-4.1; gdb make-4.1 > GNU gdb 6.5 > Copyright (C) 2006 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "powerpc-unknown-linux-gnu"...Using host > libthread_db library "/lib/libthread_db.so.1". > > (gdb) run --version > Starting program: /tmp/build/make-4.1/make-4.1 --version > > Program received signal SIGSEGV, Segmentation fault. > strlen (s=0x0) at src/string/strlen.c:15 > 15 for (w = (const void *)s; !HASZERO(*w); w++); > (gdb) This means make is calling strlen(0), so the bug is somewhere else -- in whatever causing the string pointer passed to strlen to be a null pointer. Can you show a full backtrace (bt) rather than just the point of the crash? > output for arm target: > > GNU gdb (GDB) 8.0 > Copyright (C) 2017 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "armv7l-unknown-linux-gnueabi". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > For help, type "help". > Type "apropos word" to search for commands related to "word"... > Reading symbols from make-4.1...done. > (gdb) run --version > Starting program: /tmp/build/make-4.1/make-4.1 --version > > Program received signal SIGSEGV, Segmentation fault. > 0x0002c3a0 in strlen (s=<optimized out>, s@...ry=0x0) at > src/string/strlen.c:15 > 15 for (w = (const void *)s; !HASZERO(*w); w++); > (gdb) Same here. Does the problem also happen with make 4.2? Alpine Linux is using make 4.2.1 I think and I haven't heard of such a problem from them. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.