nbd: prevent sock_xmit from attempting to use a NULL socket
Subsystems (2)
PATCH 1/1 nbd: prevent sock_xmit from attempting to use a NULL socket
NBD does not protect the nbd_device's socket from becoming NULL during receives.
This closes a race with the NBD_CLEAR_SOCK ioctl (nbd-client -d) setting the nbd_device's socket to NULL right before NBD calls sock_xmit.
Signed-off-by Mike Snitzer <[email protected]>
Cc Paul Clements <[email protected]>
--- drivers/block/nbd.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
drivers/block/nbd.c +6 -0
@@ -153,6 +153,12 @@ static int sock_xmit(struct nbd_device *lo, int send, void *buf, int size,struct kvec iov;sigset_t blocked, oldset; +if (unlikely (!sock)) { +printk (KERN_ERR "%s: Attempted %s on closed socket in sock_xmit\n" , + lo->disk->disk_name, (send ?"send" :"recv" )); +return -EINVAL ; + } +/* Allow interception of SIGKILL only * Don't allow other signals to interrupt the transmission */ siginitsetinv (&blocked,sigmask (SIGKILL ));
Signature · 1 line
1.5.3.4