PCI: Restrict VPD read permission to root
authorBen Hutchings <bhutchings@solarflare.com>
Tue, 1 Jul 2008 16:18:17 +0000 (17:18 +0100)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 1 Jul 2008 16:51:53 +0000 (09:51 -0700)
Some PCI devices will lock up if we attempt to read from VPD addresses
beyond some device-dependent limit.  Until we can identify these
devices and adjust the file size accordingly, only let root read VPD
through sysfs to prevent a DoS by normal users.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/pci-sysfs.c

index 6f3c7446c329f3dfedc9dd60ee50497184062a63..1f855f028e929f3aa543f58009019a7ee36e3ec0 100644 (file)
@@ -738,7 +738,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
                        pdev->vpd->attr = attr;
                        attr->size = pdev->vpd->ops->get_size(pdev);
                        attr->attr.name = "vpd";
-                       attr->attr.mode = S_IRUGO | S_IWUSR;
+                       attr->attr.mode = S_IRUSR | S_IWUSR;
                        attr->read = pci_read_vpd;
                        attr->write = pci_write_vpd;
                        retval = sysfs_create_bin_file(&pdev->dev.kobj, attr);