[PATCH v4 05/24] PCI/sysfs: Add CAP_SYS_ADMIN check to __resource_resize_store()
Krzysztof Wilczyński
kwilczynski at kernel.org
Sat Apr 11 18:01:29 AEST 2026
Currently, the __resource_resize_store() allows writing to the
resourceN_resize sysfs attribute to change a BAR's size without
checking for capabilities, currently relying only on the file
access check.
Resizing a BAR modifies PCI device configuration and can disrupt
active drivers. After the upcoming conversion to static attributes,
it will also trigger resource file updates via sysfs_update_groups().
Thus, add a CAP_SYS_ADMIN check to prevent unprivileged users from
performing BAR resize operations.
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen at linux.intel.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski at kernel.org>
---
drivers/pci/pci-sysfs.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 73a9ae9d289b..4f95b336cc34 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1619,6 +1619,9 @@ static ssize_t __resource_resize_store(struct device *dev, int n,
int ret;
u16 cmd;
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
+
if (kstrtoul(buf, 0, &size) < 0)
return -EINVAL;
--
2.53.0
More information about the Linuxppc-dev
mailing list