diff options
Diffstat (limited to 'efi-move-some-sysfs-files-to-be-read-only-by-root.patch')
| -rw-r--r-- | efi-move-some-sysfs-files-to-be-read-only-by-root.patch | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/efi-move-some-sysfs-files-to-be-read-only-by-root.patch b/efi-move-some-sysfs-files-to-be-read-only-by-root.patch deleted file mode 100644 index 0efc084f7e5857..00000000000000 --- a/efi-move-some-sysfs-files-to-be-read-only-by-root.patch +++ /dev/null @@ -1,122 +0,0 @@ -From foo@baz Tue Dec 5 09:14:53 CET 2017 -Date: Tue, 05 Dec 2017 09:14:53 +0100 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH] efi: move some sysfs files to be read-only by root - -Thanks to the scripts/leaking_addresses.pl script, it was found that -some EFI values should not be readable by non-root users. - -So make them root-only, and to do that, add a __ATTR_RO_MODE() macro to -make this easier, and use it in other places at the same time. - -Reported-by: Linus Torvalds <torvalds@linux-foundation.org> -Tested-by: Dave Young <dyoung@redhat.com> -Cc: Matt Fleming <matt@codeblueprint.co.uk> -Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> -Cc: stable <stable@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/firmware/efi/efi.c | 3 +-- - drivers/firmware/efi/esrt.c | 15 ++++++--------- - drivers/firmware/efi/runtime-map.c | 10 +++++----- - include/linux/sysfs.h | 6 ++++++ - 4 files changed, 18 insertions(+), 16 deletions(-) - ---- a/drivers/firmware/efi/efi.c -+++ b/drivers/firmware/efi/efi.c -@@ -143,8 +143,7 @@ static ssize_t systab_show(struct kobjec - return str - buf; - } - --static struct kobj_attribute efi_attr_systab = -- __ATTR(systab, 0400, systab_show, NULL); -+static struct kobj_attribute efi_attr_systab = __ATTR_RO_MODE(systab, 0400); - - #define EFI_FIELD(var) efi.var - ---- a/drivers/firmware/efi/esrt.c -+++ b/drivers/firmware/efi/esrt.c -@@ -106,7 +106,7 @@ static const struct sysfs_ops esre_attr_ - }; - - /* Generic ESRT Entry ("ESRE") support. */ --static ssize_t esre_fw_class_show(struct esre_entry *entry, char *buf) -+static ssize_t fw_class_show(struct esre_entry *entry, char *buf) - { - char *str = buf; - -@@ -117,18 +117,16 @@ static ssize_t esre_fw_class_show(struct - return str - buf; - } - --static struct esre_attribute esre_fw_class = __ATTR(fw_class, 0400, -- esre_fw_class_show, NULL); -+static struct esre_attribute esre_fw_class = __ATTR_RO_MODE(fw_class, 0400); - - #define esre_attr_decl(name, size, fmt) \ --static ssize_t esre_##name##_show(struct esre_entry *entry, char *buf) \ -+static ssize_t name##_show(struct esre_entry *entry, char *buf) \ - { \ - return sprintf(buf, fmt "\n", \ - le##size##_to_cpu(entry->esre.esre1->name)); \ - } \ - \ --static struct esre_attribute esre_##name = __ATTR(name, 0400, \ -- esre_##name##_show, NULL) -+static struct esre_attribute esre_##name = __ATTR_RO_MODE(name, 0400) - - esre_attr_decl(fw_type, 32, "%u"); - esre_attr_decl(fw_version, 32, "%u"); -@@ -193,14 +191,13 @@ static int esre_create_sysfs_entry(void - - /* support for displaying ESRT fields at the top level */ - #define esrt_attr_decl(name, size, fmt) \ --static ssize_t esrt_##name##_show(struct kobject *kobj, \ -+static ssize_t name##_show(struct kobject *kobj, \ - struct kobj_attribute *attr, char *buf)\ - { \ - return sprintf(buf, fmt "\n", le##size##_to_cpu(esrt->name)); \ - } \ - \ --static struct kobj_attribute esrt_##name = __ATTR(name, 0400, \ -- esrt_##name##_show, NULL) -+static struct kobj_attribute esrt_##name = __ATTR_RO_MODE(name, 0400) - - esrt_attr_decl(fw_resource_count, 32, "%u"); - esrt_attr_decl(fw_resource_count_max, 32, "%u"); ---- a/drivers/firmware/efi/runtime-map.c -+++ b/drivers/firmware/efi/runtime-map.c -@@ -63,11 +63,11 @@ static ssize_t map_attr_show(struct kobj - return map_attr->show(entry, buf); - } - --static struct map_attribute map_type_attr = __ATTR_RO(type); --static struct map_attribute map_phys_addr_attr = __ATTR_RO(phys_addr); --static struct map_attribute map_virt_addr_attr = __ATTR_RO(virt_addr); --static struct map_attribute map_num_pages_attr = __ATTR_RO(num_pages); --static struct map_attribute map_attribute_attr = __ATTR_RO(attribute); -+static struct map_attribute map_type_attr = __ATTR_RO_MODE(type, 0400); -+static struct map_attribute map_phys_addr_attr = __ATTR_RO_MODE(phys_addr, 0400); -+static struct map_attribute map_virt_addr_attr = __ATTR_RO_MODE(virt_addr, 0400); -+static struct map_attribute map_num_pages_attr = __ATTR_RO_MODE(num_pages, 0400); -+static struct map_attribute map_attribute_attr = __ATTR_RO_MODE(attribute, 0400); - - /* - * These are default attributes that are added for every memmap entry. ---- a/include/linux/sysfs.h -+++ b/include/linux/sysfs.h -@@ -117,6 +117,12 @@ struct attribute_group { - .show = _name##_show, \ - } - -+#define __ATTR_RO_MODE(_name, _mode) { \ -+ .attr = { .name = __stringify(_name), \ -+ .mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \ -+ .show = _name##_show, \ -+} -+ - #define __ATTR_WO(_name) { \ - .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \ - .store = _name##_store, \ |
