summaryrefslogtreecommitdiffstats
path: root/drivers/char/raw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/raw.c')
-rw-r--r--drivers/char/raw.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/char/raw.c b/drivers/char/raw.c
index 6ffbb517c..61dfd6e42 100644
--- a/drivers/char/raw.c
+++ b/drivers/char/raw.c
@@ -197,7 +197,12 @@ int raw_ctl_ioctl(struct inode *inode,
raw_device_bindings[minor] =
bdget(kdev_t_to_nr(MKDEV(rq.block_major, rq.block_minor)));
} else {
- kdev_t dev=to_kdev_t(raw_device_bindings[minor]->bd_dev);
+ kdev_t dev;
+ if (!raw_device_bindings[minor]) {
+ err = -ENODEV;
+ break;
+ }
+ dev = to_kdev_t(raw_device_bindings[minor]->bd_dev);
rq.block_major = MAJOR(dev);
rq.block_minor = MINOR(dev);
err = copy_to_user((void *) arg, &rq, sizeof(rq));