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
