Use sockfd_lookup_light in the rest of the net/socket.c
Subsystems (3)
PATCH 1/1 Use sockfd_lookup_light in the rest of the net/socket.c
Some time ago a sockfd_lookup_light was introduced and most of the socket.c file was patched to use it. However two routines were left - sys_sendto and sys_recvfrom.
Patch them as well, since this helper does exactly what these two need.
---
net/socket.c +7 -18
@@ -1581,16 +1581,11 @@ asmlinkage long sys_sendto(int fd, void __user *buff, size_t len,struct msghdr msg;struct iovec iov;int fput_needed; -struct file *sock_file; - sock_file =fget_light (fd, &fput_needed); - err = -EBADF ; -if (!sock_file) + sock =sockfd_lookup_light (fd, &err, &fput_needed); +if (!sock) goto out; - sock =sock_from_file (sock_file, &err); -if (!sock) - goto out_put; iov.iov_base = buff; iov.iov_len = len; msg.msg_name =NULL ;
@@ -1612,7 +1607,7 @@ asmlinkage long sys_sendto(int fd, void __user *buff, size_t len, err =sock_sendmsg (sock, &msg, len); out_put: -fput_light (sock_file, fput_needed); +fput_light (sock->file, fput_needed); out:return err; }
@@ -1641,17 +1636,11 @@ asmlinkage long sys_recvfrom(int fd, void __user *ubuf, size_t size,struct msghdr msg;char address[MAX_SOCK_ADDR ];int err, err2; -struct file *sock_file;int fput_needed; - sock_file =fget_light (fd, &fput_needed); - err = -EBADF ; -if (!sock_file) - goto out; - - sock =sock_from_file (sock_file, &err); + sock =sockfd_lookup_light (fd, &err, &fput_needed);if (!sock) - goto out_put; + goto out; msg.msg_control =NULL ; msg.msg_controllen =0 ;
@@ -1670,8 +1659,8 @@ asmlinkage long sys_recvfrom(int fd, void __user *ubuf, size_t size,if (err2 <0 ) err = err2; } -out_put: -fput_light (sock_file, fput_needed); + +fput_light (sock->file, fput_needed); out:return err; }
Quoted 8 lines · Pavel Emelyanov
Some time ago a
sockfd_lookup_lightwas introduced and most of thesocket.cfile was patched to use it. However two routines were left -sys_sendtoandsys_recvfrom.Patch them as well, since this helper does exactly what these two need.
Signed-off-by Pavel Emelyanov <[email protected]>
This looks correct to me.
Signature · 1 line
Horms, California Edition
From: Pavel Emelyanov <[email protected]>
Date: Wed, 14 Nov 2007 19:42:18 +0300
Quoted 8 lines
Some time ago a
sockfd_lookup_lightwas introduced and most of thesocket.cfile was patched to use it. However two routines were left -sys_sendtoandsys_recvfrom.Patch them as well, since this helper does exactly what these two need.
Signed-off-by Pavel Emelyanov <[email protected]>
Applied to net-2.6.25, thanks!