On Tue, 11 Nov 2008 08:38:51 +1300
Jeremy Bowen <[EMAIL PROTECTED]> wrote:

> Thanks. Please find attached my BusyBox binary and the associated coredump 
> from running mdev -s. I've also attached my /etc/mdev.conf in case you need 
> it and my ./libc/misc/regex/regexec.c which has a dprintf at approx the 
> location that triggers the segfault.

Yeah, this looks like the bug we've seen before...

(gdb) regs
pc: 00010840  lr: 0001810e  sp: 7fd77908  r12: 0000002b
r11: 7fd77884  r10: 0000002b   r9: 00000090   r8: 00000090
 r7: 00000001   r6: 0009ed58   r5: 00000000   r4: 00000000
 r3: 00000000   r2: 00000000   r1: 00000000   r0: 00000001

   10840:       e2 05 07 08     ld.ub   r8,r1[r5]
   10844:       40 fe           lddsp   lr,sp[0x3c]
   10846:       58 01           cp.w    r1,0
   10848:       f0 05 17 10     movne   r5,r8

gcc does the load unconditionally, then it checks the pointer and does a
conditional move to get the correct result. But since the pointer is
NULL, the program will crash before it gets that far.

I suppose we need to investigate this. I haven't read this thread
closely enough to know how to reproduce it, but I'll have a closer look
tomorrow.

Haavard
_______________________________________________
uClibc mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/uclibc

Reply via email to