diff options
author | Thomas Weißschuh <linux@weissschuh.net> | 2024-12-22 21:12:13 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-12-24 08:56:04 +0100 |
commit | aa13b9d5ae2597a08703cf9aa4b0907d09407888 (patch) | |
tree | 0ccf04bd8ddac09c05cd3c47ae28655bf05f4722 | |
parent | ca5d736b74cacbfd7adf1d792e4ad5b97c6c56c8 (diff) |
usb: core: sysfs: Constify 'struct bin_attribute'
The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20241222-sysfs-const-bin_attr-usb-v1-1-19a137c0f20a@weissschuh.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/usb/core/sysfs.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index b4cba23831ac..23f3cb1989f4 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c @@ -854,7 +854,7 @@ static const struct attribute_group dev_string_attr_grp = { static ssize_t descriptors_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *attr, + const struct bin_attribute *attr, char *buf, loff_t off, size_t count) { struct device *dev = kobj_to_dev(kobj); @@ -890,11 +890,11 @@ descriptors_read(struct file *filp, struct kobject *kobj, } return count - nleft; } -static BIN_ATTR_RO(descriptors, 18 + 65535); /* dev descr + max-size raw descriptor */ +static const BIN_ATTR_RO(descriptors, 18 + 65535); /* dev descr + max-size raw descriptor */ static ssize_t bos_descriptors_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *attr, + const struct bin_attribute *attr, char *buf, loff_t off, size_t count) { struct device *dev = kobj_to_dev(kobj); @@ -913,12 +913,12 @@ bos_descriptors_read(struct file *filp, struct kobject *kobj, } return n; } -static BIN_ATTR_RO(bos_descriptors, 65535); /* max-size BOS */ +static const BIN_ATTR_RO(bos_descriptors, 65535); /* max-size BOS */ /* When modifying this list, be sure to modify dev_bin_attrs_are_visible() * accordingly. */ -static struct bin_attribute *dev_bin_attrs[] = { +static const struct bin_attribute *const dev_bin_attrs[] = { &bin_attr_descriptors, &bin_attr_bos_descriptors, NULL @@ -944,7 +944,7 @@ static umode_t dev_bin_attrs_are_visible(struct kobject *kobj, } static const struct attribute_group dev_bin_attr_grp = { - .bin_attrs = dev_bin_attrs, + .bin_attrs_new = dev_bin_attrs, .is_bin_visible = dev_bin_attrs_are_visible, }; |