From fe8a5388feec7b05ffd84b53c60d1d16f36fa43f Mon Sep 17 00:00:00 2001 From: Krzysztof Mazur Date: Wed, 18 May 2011 19:43:30 +0200 Subject: [PATCH 32/84] lsbd: check for down_interruptible() result In ioctl() result of down_interruptible() is not checked. This can lead to concurent access in case of received signal. --- drivers/block/lsbd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/block/lsbd.c b/drivers/block/lsbd.c index 119d0ae..e9e4a1e 100644 --- a/drivers/block/lsbd.c +++ b/drivers/block/lsbd.c @@ -1205,7 +1205,8 @@ static int lsbd_ioctl(struct inode *inode, struct file *file, return -ENODEV; p = &lsbd_dev[dev]; - down_interruptible(&p->mutex); + if (down_interruptible(&p->mutex)) + return -ERESTARTSYS; switch (cmd) { case LSBD_SET_DEV: { unsigned int major = arg >> 20; -- 1.8.4.652.g0d6e0ce