patch "usbip: prevent leaking socket pointer address in messages" added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
usbip: prevent leaking socket pointer address in messages
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
90120d15f4c397272aaf41077960a157fc4212bfMon Sep 17 00:00:00 2001
From: Shuah Khan <[email protected]>
Date: Fri, 15 Dec 2017 10:50:09 -0700
Subject: usbip: prevent leaking socket pointer address in messages
usbip driver is leaking socket pointer address in messages. Remove the messages that aren't useful and print sockfd in the ones that are useful for debugging.
--- drivers/usb/usbip/stub_dev.c | 3 +-- drivers/usb/usbip/usbip_common.c | 16 +++++----------- drivers/usb/usbip/vhci_hcd.c | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-)
drivers/usb/usbip/stub_dev.c +1 -2
@@ -149,8 +149,7 @@ static void stub_shutdown_connection(struct usbip_device *ud)* step 1? */ if (ud->tcp_socket) { -dev_dbg (&sdev->udev->dev,"shutdown tcp_socket %p\n" , - ud->tcp_socket); +dev_dbg (&sdev->udev->dev,"shutdown sockfd %d\n" , ud->sockfd);kernel_sock_shutdown (ud->tcp_socket,SHUT_RDWR ); }
drivers/usb/usbip/usbip_common.c +5 -11
@@ -317,26 +317,20 @@ int usbip_recv(struct socket *sock, void *buf, int size)struct msghdr msg = {.msg_flags =MSG_NOSIGNAL };int total =0 ; +if (!sock || !buf || !size) +return -EINVAL ; +iov_iter_kvec (&msg.msg_iter,READ |ITER_KVEC , &iov,1 , size);usbip_dbg_xmit ("enter\n" ); -if (!sock || !buf || !size) { -pr_err ("invalid arg, sock %p buff %p size %d\n" , sock, buf, - size); -return -EINVAL ; - } -do { -int sz =msg_data_left (&msg); +msg_data_left (&msg); sock->sk->sk_allocation =GFP_NOIO ; result =sock_recvmsg (sock, &msg,MSG_WAITALL ); -if (result <=0 ) { -pr_debug ("receive sock %p buf %p size %u ret %d total %d\n" , - sock, buf + total, sz, result, total); +if (result <=0 ) goto err; - } total += result; }while (msg_data_left (&msg));
drivers/usb/usbip/vhci_hcd.c +1 -1
@@ -965,7 +965,7 @@ static void vhci_shutdown_connection(struct usbip_device *ud)/* need this? see stub_dev.c */ if (ud->tcp_socket) { -pr_debug ("shutdown tcp_socket %p\n" , ud->tcp_socket); +pr_debug ("shutdown tcp_socket %d\n" , ud->sockfd);kernel_sock_shutdown (ud->tcp_socket,SHUT_RDWR ); }
Signature · 1 line
2.15.1