mysterious segfault with busybox 1.13.0 ash
Natanael Copa
natanael.copa at gmail.com
Wed Nov 19 20:30:27 UTC 2008
On Wed, 2008-11-19 at 21:17 +0100, Natanael Copa wrote:
> On Wed, 2008-11-19 at 21:11 +0100, Natanael Copa wrote:
>
> >
> > interestingly enough, this happens only on a grsecurity kernel, but not
> > on a default gentoo kernel (in chroot). tested in kvm only so far.
>
> my bad. it does segfault on my desktop too with a normal gentoo kernel.
>
> shorter testcase:
>
> ash -c "foo() { ! false && echo foo; }; foo"
>
> -nc
and gdb output:
(gdb) run
Starting program: /busybox/busybox-1.13.0/busybox_unstripped ash -c "foo() { ! false && echo foo;} ; foo"
Program received signal SIGSEGV, Segmentation fault.
0x080a9278 in evaltree (n=Cannot access memory at address 0xff177f5c
) at shell/ash.c:7904
7904 {
(gdb) bt
#0 0x080a9278 in evaltree (n=Cannot access memory at address 0xff177f5c
) at shell/ash.c:7904
#1 0x080a9316 in evaltree (n=0x8188a44, flags=134910742) at shell/ash.c:7940
#2 0x080a9316 in evaltree (n=0x8188a44, flags=134910742) at shell/ash.c:7940
#3 0x080a9316 in evaltree (n=0x8188a44, flags=134910742) at shell/ash.c:7940
...
#10474 0x080a9316 in evaltree (n=0x8188a44, flags=134910742)
at shell/ash.c:7940
etc...
I think that should point you in right direction. Looks like a recursive func that is going bad.
-nc
More information about the busybox
mailing list