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

Reply via email to