Messages in this thread | | | Date | Tue, 8 Feb 2022 22:16:56 +0000 | From | Al Viro <> | Subject | Re: [PATCH] copy_process(): Move fd_install() out of sighand->siglock critical section |
| |
On Tue, Feb 08, 2022 at 03:59:06PM -0600, Eric W. Biederman wrote:
> The fd is being installed in the fdtable of the parent process, > and the siglock and tasklist_lock are held to protect the child. > > > Further fd_install is exposing the fd to userspace where it can be used > by the process_madvise and the process_mrelease system calls, from > anything that shares the fdtable of the parent thread. Which means it > needs to be guaranteed that kernel_clone will call wake_up_process > before it is safe to call fd_install.
You mean "no calling fd_install() until after we are past the last possible failure exit, by which point we know that wake_up_process() will eventually be called", hopefully? If so (as I assumed all along), anything downstream of if (fatal_signal_pending(current)) { retval = -EINTR; goto bad_fork_cancel_cgroup; }
should be fine...
| |