Explorar o código

[NET]: Make sure sockets implement splice_read

Fixes a segmentation fault when trying to splice from a non-TCP socket.

Signed-off-by: Rémi Denis-Courmont <rdenis@simphalempin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Rémi Denis-Courmont %!s(int64=18) %!d(string=hai) anos
pai
achega
997b37da15
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  1. 3 0
      net/socket.c

+ 3 - 0
net/socket.c

@@ -701,6 +701,9 @@ static ssize_t sock_splice_read(struct file *file, loff_t *ppos,
 {
 	struct socket *sock = file->private_data;
 
+	if (unlikely(!sock->ops->splice_read))
+		return -EINVAL;
+
 	return sock->ops->splice_read(sock, ppos, pipe, len, flags);
 }