Commit 34c21662 authored by Kees Cook's avatar Kees Cook Committed by Greg Kroah-Hartman
Browse files

net/compat: Add missing sock updates for SCM_RIGHTS

[ Upstream commit d9539752d23283db4692384a634034f451261e29 ]

Add missed sock updates to compat path via a new helper, which will be
used more in coming patches. (The net/core/scm.c code is left as-is here
to assist with -stable backports for the compat path.)

Cc: Christoph Hellwig <>
Cc: Sargun Dhillon <>
Cc: Jakub Kicinski <>
Fixes: 48a87cc2 ("net: netprio: fd passed in SCM_RIGHTS datagram not set correctly")
Fixes: d8429506

 ("net: net_cls: fd passed in SCM_RIGHTS datagram not set correctly")
Acked-by: default avatarChristian Brauner <>
Signed-off-by: default avatarKees Cook <>
Signed-off-by: default avatarSasha Levin <>
parent c5f1fa15
......@@ -779,6 +779,8 @@ static inline int sk_memalloc_socks(void)
return static_key_false(&memalloc_socks);
void __receive_sock(struct file *file);
static inline int sk_memalloc_socks(void)
......@@ -786,6 +788,8 @@ static inline int sk_memalloc_socks(void)
return 0;
static inline void __receive_sock(struct file *file)
{ }
static inline gfp_t sk_gfp_atomic(const struct sock *sk, gfp_t gfp_mask)
......@@ -284,6 +284,7 @@ void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
/* Bump the usage count and install the file. */
fd_install(new_fd, get_file(fp[i]));
......@@ -2275,6 +2275,27 @@ int sock_no_mmap(struct file *file, struct socket *sock, struct vm_area_struct *
* When a file is received (via SCM_RIGHTS, etc), we must bump the
* various sock-based usage counts.
void __receive_sock(struct file *file)
struct socket *sock;
int error;
* The resulting value of "error" is ignored here since we only
* need to take action when the file is a socket and testing
* "sock" for NULL is sufficient.
sock = sock_from_file(file, &error);
if (sock) {
ssize_t sock_no_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags)
ssize_t res;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment