does if [ -z "$(pidof <process name>)" ]; then change anything ?
re, wh Cristian Ionescu-Idbohrn schrieb: > This is: BusyBox v1.13.2, Linux 2.6.26 arch=crisv32 > > Have spent some time chasing this bug. > I didn't find a simple way to reproduce, yet. > > The bug occurs in a somewhat complex chain of forked processes. Seems > 'pidof' is to blaim. The shell code line: > > if [ "$(pidof <process name>)" ]; then > > That <process name> does not exist. > > Changing that line to: > > pid=$(pidof <process name>) || : > if [ "$pid" ]; then > > seems to work around the bug. Still, that's not IMO a future safe > solution. > > After some tweaking with a SIGSEVG signal handler, I suspect a race in > pidof between the point where readdir picks up pids under /proc/<pid> and > the point where the /proc/<pid>/stat is read. Some of those processes are > dead. Still, the linked list keeps some invalid data which, when used, > might lead to overwritting the stack. Not sure about that though. Error > handling may be missing/faulty. > > Thoughts? > > > Cheers, > _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
