OSDN Git Service

fs: Add receive_fd() wrapper for __receive_fd()
authorKees Cook <keescook@chromium.org>
Thu, 11 Jun 2020 03:47:45 +0000 (20:47 -0700)
committerKees Cook <keescook@chromium.org>
Mon, 13 Jul 2020 18:03:44 +0000 (11:03 -0700)
commitdeefa7f3505ae2fb6a7cb75f50134b65a1dd1494
tree4147bf6aa14904b8e7cf4e1aaf9f39ac6a82a149
parent6659061045cc93f609e100b128f30581e5f012e9
fs: Add receive_fd() wrapper for __receive_fd()

For both pidfd and seccomp, the __user pointer is not used. Update
__receive_fd() to make writing to ufd optional via a NULL check. However,
for the receive_fd_user() wrapper, ufd is NULL checked so an -EFAULT
can be returned to avoid changing the SCM_RIGHTS interface behavior. Add
new wrapper receive_fd() for pidfd and seccomp that does not use the ufd
argument. For the new helper, the allocated fd needs to be returned on
success. Update the existing callers to handle it.

Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: linux-fsdevel@vger.kernel.org
Reviewed-by: Sargun Dhillon <sargun@sargun.me>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/file.c
include/linux/file.h
net/compat.c
net/core/scm.c