no stdout / stderr with dynamically compiled busybox (bionic libc)

Christopher Friedt chrisfriedt at gmail.com
Thu Jan 19 21:40:45 UTC 2012


Hi list,

Kind of a brain-teaser for the gurus. The problem is that a
dynamically linked busybox will not write anything to stdout or
stderr, however stdin works fine. If I statically link busybox,
everything works as expected.

I'm logging in using init=/bin/ash which is a symlink to /bin/busybox.static.

If I then run '/bin/busybox.dynamic ash', I can actually execute
commands (and I've verified this with strace). E.g. if I type 'exit\n'
in this case, then I get the prompt of the original static busybox
back but none of the 'exit' characters are echoed on the console. I've
tried /bin/busybox.dynamic ash -c 'echo hi > /dev/stdout' and echo 'hi
> /dev/stderr' as well, and those also do not produce any output.
Oddly, /bin/busybox.dynamic ash -c 'echo hi > /tmp/anotherfile'
creates /tmp/anotherfile but the file is empty. Just executing
/bin/busybox.dynamic prints out all of the available applets, as one
would expect.

I just thought I would trawl to see if any of the gurus have some suggestions.

It could very well be that this is a problem with the bionic libc
although I haven't seen any failed system calls in strace.

Thoughts?

Cheers,

C


More information about the busybox mailing list