Return error instead of segfaulting if user trys to run comedi_config on
authorFrank Mori Hess <fmhess@speakeasy.net>
Mon, 15 Dec 2008 13:48:47 +0000 (13:48 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Mon, 15 Dec 2008 13:48:47 +0000 (13:48 +0000)
a device file with and invalid minor number.

comedi/comedi_fops.c

index be1f217530c27815aff0dc9a19981f1b59b3c702..8e976a6dbcc3841cd57e7f86fdc8b9cd6b832281 100644 (file)
@@ -102,9 +102,12 @@ static int comedi_ioctl(struct inode *inode, struct file *file,
 {
        const unsigned minor = iminor(file->f_dentry->d_inode);
        struct comedi_device_file_info *dev_file_info = comedi_get_device_file_info(minor);
-       comedi_device *dev = dev_file_info->device;
+       comedi_device *dev;
        int rc;
 
+       if(dev_file_info == NULL || dev_file_info->device == NULL) return -ENODEV;
+       dev = dev_file_info->device;
+       
        mutex_lock(&dev->mutex);
 
        /* Device config is special, because it must work on