ash not working in statically compiled busybox on amd64

Andree Leidenfrost aleidenf at bigpond.net.au
Tue May 16 21:59:33 UTC 2006


On Tue, 2006-05-16 at 17:33 +0200, Bruno Cornec wrote:
> Hello you ;-)

Hello you, too! So we meet on the busybox list for a change rather than
on the mondo rescue one. ;-) 

> 
> Andree Leidenfrost said on Tue, May 16, 2006 at 10:49:38PM +1000:
> 
> > andree at aurich64:~$ ./ash
> > 
> > 
> > BusyBox v1.1.2 (2006.05.16-11:40+0000) Built-in shell (ash)
> > Enter 'help' for a list of built-in commands.
> > 
> > ./ash: Cannot set tty process group (Operation not permitted)
> 
> Not very good.
> Did you try a strace of ./ash to see what could be behid ?

Excellent point, no I hadn't. Traces for dynamic and static compile
attached. It looks like the culprit might be:

setpgid(0, 5)                = -1 EPERM (Operation not permitted)
ioctl(10, TIOCSPGRP, [5])    = -1 EPERM (Operation not permitted)

for the static compile.

Any ideas?

> Bruno.

Cheers,
Andree
-- 
Andree Leidenfrost
Sydney - Australia

-------------- next part --------------
execve("./ash", ["./ash"], [/* 30 vars */]) = 0
uname({sys="Linux", node="aurich64", ...}) = 0
brk(0)                                  = 0x519000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b1129859000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=41721, ...}) = 0
mmap(NULL, 41721, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b112985b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\305"..., 640) = 640
lseek(3, 624, SEEK_SET)                 = 624
read(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0"..., 32) = 32
fstat(3, {st_mode=S_IFREG|0755, st_size=1295640, ...}) = 0
mmap(NULL, 2354344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2b112995a000
mprotect(0x2b1129a7e000, 1158312, PROT_NONE) = 0
mmap(0x2b1129b7d000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x123000) = 0x2b1129b7d000
mmap(0x2b1129b95000, 15528, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2b1129b95000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b1129b99000
mprotect(0x2b1129b7d000, 86016, PROT_READ) = 0
arch_prctl(ARCH_SET_FS, 0x2b1129b996d0) = 0
munmap(0x2b112985b000, 41721)           = 0
getpid()                                = 7795
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
geteuid()                               = 1000
brk(0)                                  = 0x519000
brk(0x53a000)                           = 0x53a000
getppid()                               = 7794
stat("/home/andree/shed/busybox/busybox-1.1.2", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x4080ee, ~[RTMIN RT_1], SA_RESTORER, 0x2b1129989e90}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {SIG_IGN}, NULL, 8) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b112985b000
write(1, "\n", 1
)                       = 1
write(1, "\n", 1
)                       = 1
write(1, "BusyBox v1.1.2 (2006.05.16-21:47"..., 107BusyBox v1.1.2 (2006.05.16-21:47+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

) = 107
open("/dev/tty", O_RDWR)                = 3
fcntl(3, F_DUPFD, 10)                   = 10
close(3)                                = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
ioctl(10, TIOCGPGRP, [7794])            = 0
getpgrp()                               = 7794
rt_sigaction(SIGTSTP, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTTOU, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTOU, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTTIN, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTIN, {SIG_DFL}, NULL, 8) = 0
setpgid(0, 7795)                        = 0
ioctl(10, TIOCSPGRP, [7795])            = 0
wait4(4294967295, 0x7fffff97f5bc, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
write(2, "$ ", 2$ )                       = 2
read(0,
-------------- next part --------------
execve("./ash", ["./ash"], [/* 30 vars */]) = 0
uname({sys="Linux", node="aurich64", ...}) = 0
brk(0)                                  = 0x5ac000
brk(0x5ac888)                           = 0x5ac888
arch_prctl(ARCH_SET_FS, 0x5ac860)       = 0
brk(0x5cd888)                           = 0x5cd888
brk(0x5ce000)                           = 0x5ce000
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
geteuid()                               = 1000
getppid()                               = 7559
stat("/home/andree/shed/busybox/busybox-1.1.2", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x405c9a, ~[RTMIN RT_1], SA_RESTORER, 0x40e440}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {SIG_IGN}, NULL, 8) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b80f1fb8000
write(1, "\n", 1
)                       = 1
write(1, "\n", 1
)                       = 1
write(1, "BusyBox v1.1.2 (2006.05.16-11:45"..., 107BusyBox v1.1.2 (2006.05.16-11:45+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

) = 107
open("/dev/tty", O_RDWR)                = 3
fcntl(3, F_DUPFD, 10)                   = 10
close(3)                                = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
ioctl(10, TIOCGPGRP, [7559])            = 0
getpgrp()                               = 7559
rt_sigaction(SIGTSTP, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTSTP, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTTOU, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTOU, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGTTIN, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTTIN, {SIG_DFL}, NULL, 8) = 0
setpgid(0, 5)                           = -1 EPERM (Operation not permitted)
ioctl(10, TIOCSPGRP, [5])               = -1 EPERM (Operation not permitted)
write(2, "./ash: ", 7./ash: )                  = 7
write(2, "Cannot set tty process group (Op"..., 54Cannot set tty process group (Operation not permitted)) = 54
write(2, "\n", 1
)                       = 1
exit_group(2)                           = ?
Process 7560 detached
andree at aurich64:~/shed/busybox/busybox-1.1.2$
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.busybox.net/pipermail/busybox/attachments/20060517/f2210484/attachment-0002.pgp 


More information about the busybox mailing list