Re: [PATCH 0/8] make vfork killable/restartable/traceable

Pavel Machek
2011-08-10T21:54:25Z

Hi!

> CLONE_VFORK sleeps in TASK_INTERRUPTIBLE until the child exits/execs.
> This is obviously not good, it is sooo simple to create the task which
> doesn't react to SIGKILL/SIGSTOP.
>
> Questions:
>
> - do we really need this?
>
> I think we do. This really "looks like a bug" in any case,
> even if nobody ever complained afaik.
>
> - may be 1-3 is enough?
>
> may be... but personally I think SIGSTOP/ptrace should work
> too.
>
> - is it safe to exit/stop on !x86 machine???
>
> I do not know. May be this needs some #ifdef's around
> wait_for_completion_interruptible(). I am not sure that,
> say, arch_ptrace_stop() can't abuse the ->mm shared with
> the child.
>
> OTOH. This can happen anyway, do_fork() does ptrace_event()
> before wait_for_completion().
>
> - and of course, while I think this is bugfix, this is user
> visible change.
>
> Please comment.

I believe we should fix it. I was always claiming "if it does not
react to SIGKILL, it is a kernel bug" and well, this just proved me
wrong...
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html