]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: proton-pack: use sysfs_emit in sysfs show functions
authorThorsten Blum <thorsten.blum@linux.dev>
Wed, 13 May 2026 11:57:55 +0000 (13:57 +0200)
committerWill Deacon <will@kernel.org>
Tue, 19 May 2026 11:16:12 +0000 (12:16 +0100)
Replace sprintf() with sysfs_emit() in sysfs show functions, which is
preferred for formatting sysfs output because it provides safer bounds
checking.

While the current code only emits fixed strings that fit easily within
PAGE_SIZE, use sysfs_emit() to follow secure coding best practices.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/proton-pack.c

index b3801f532b10b36ff56ba3cdff5b85c80ba92098..7bb6553fec087a4214755786263aea59b7a6a990 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/nospec.h>
 #include <linux/prctl.h>
 #include <linux/sched/task_stack.h>
+#include <linux/sysfs.h>
 
 #include <asm/debug-monitors.h>
 #include <asm/insn.h>
@@ -61,7 +62,7 @@ static void update_mitigation_state(enum mitigation_state *oldp,
 ssize_t cpu_show_spectre_v1(struct device *dev, struct device_attribute *attr,
                            char *buf)
 {
-       return sprintf(buf, "Mitigation: __user pointer sanitization\n");
+       return sysfs_emit(buf, "Mitigation: __user pointer sanitization\n");
 }
 
 /*
@@ -126,7 +127,7 @@ ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr,
        switch (spectre_v2_state) {
        case SPECTRE_UNAFFECTED:
                if (bhb_state == SPECTRE_UNAFFECTED)
-                       return sprintf(buf, "Not affected\n");
+                       return sysfs_emit(buf, "Not affected\n");
 
                /*
                 * Platforms affected by Spectre-BHB can't report
@@ -136,13 +137,13 @@ ssize_t cpu_show_spectre_v2(struct device *dev, struct device_attribute *attr,
                fallthrough;
        case SPECTRE_MITIGATED:
                if (bhb_state == SPECTRE_MITIGATED && _unprivileged_ebpf_enabled())
-                       return sprintf(buf, "Vulnerable: Unprivileged eBPF enabled\n");
+                       return sysfs_emit(buf, "Vulnerable: Unprivileged eBPF enabled\n");
 
-               return sprintf(buf, "Mitigation: %s%s\n", v2_str, bhb_str);
+               return sysfs_emit(buf, "Mitigation: %s%s\n", v2_str, bhb_str);
        case SPECTRE_VULNERABLE:
                fallthrough;
        default:
-               return sprintf(buf, "Vulnerable\n");
+               return sysfs_emit(buf, "Vulnerable\n");
        }
 }
 
@@ -438,13 +439,13 @@ ssize_t cpu_show_spec_store_bypass(struct device *dev,
 {
        switch (spectre_v4_state) {
        case SPECTRE_UNAFFECTED:
-               return sprintf(buf, "Not affected\n");
+               return sysfs_emit(buf, "Not affected\n");
        case SPECTRE_MITIGATED:
-               return sprintf(buf, "Mitigation: Speculative Store Bypass disabled via prctl\n");
+               return sysfs_emit(buf, "Mitigation: Speculative Store Bypass disabled via prctl\n");
        case SPECTRE_VULNERABLE:
                fallthrough;
        default:
-               return sprintf(buf, "Vulnerable\n");
+               return sysfs_emit(buf, "Vulnerable\n");
        }
 }