]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/scsi/3w-xxxx.c
isdn: fix kernel-infoleak in capi_unlocked_ioctl
[mirror_ubuntu-bionic-kernel.git] / drivers / scsi / 3w-xxxx.c
index 33261b690774a8deeb8ec20835d0b24100a926b0..961ea6f7def87263e314d389a6b33b3b34a883e1 100644 (file)
@@ -1033,6 +1033,9 @@ static int tw_chrdev_open(struct inode *inode, struct file *file)
 
        dprintk(KERN_WARNING "3w-xxxx: tw_ioctl_open()\n");
 
+       if (!capable(CAP_SYS_ADMIN))
+               return -EACCES;
+
        minor_number = iminor(inode);
        if (minor_number >= tw_device_extension_count)
                return -ENODEV;
@@ -2277,6 +2280,7 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
 
        if (tw_initialize_device_extension(tw_dev)) {
                printk(KERN_WARNING "3w-xxxx: Failed to initialize device extension.");
+               retval = -ENOMEM;
                goto out_free_device_extension;
        }
 
@@ -2291,6 +2295,7 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
        tw_dev->base_addr = pci_resource_start(pdev, 0);
        if (!tw_dev->base_addr) {
                printk(KERN_WARNING "3w-xxxx: Failed to get io address.");
+               retval = -ENOMEM;
                goto out_release_mem_region;
        }