security/apparmor/lsm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Replace sprintf() with sysfs_emit() in param_get_audit() and
param_get_mode(). sysfs_emit() is preferred for formatting sysfs output
because it provides safer bounds checking. Add terminating newlines as
suggested by checkpatch.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
security/apparmor/lsm.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
index c1d42fc72fdb..cdf19a5e7626 100644
--- a/security/apparmor/lsm.c
+++ b/security/apparmor/lsm.c
@@ -17,6 +17,7 @@
#include <linux/ptrace.h>
#include <linux/ctype.h>
#include <linux/sysctl.h>
+#include <linux/sysfs.h>
#include <linux/audit.h>
#include <linux/user_namespace.h>
#include <linux/netfilter_ipv4.h>
@@ -2073,7 +2074,7 @@ static int param_get_audit(char *buffer, const struct kernel_param *kp)
return -EINVAL;
if (apparmor_initialized && !aa_current_policy_view_capable(NULL))
return -EPERM;
- return sprintf(buffer, "%s", audit_mode_names[aa_g_audit]);
+ return sysfs_emit(buffer, "%s\n", audit_mode_names[aa_g_audit]);
}
static int param_set_audit(const char *val, const struct kernel_param *kp)
@@ -2101,8 +2102,7 @@ static int param_get_mode(char *buffer, const struct kernel_param *kp)
return -EINVAL;
if (apparmor_initialized && !aa_current_policy_view_capable(NULL))
return -EPERM;
-
- return sprintf(buffer, "%s", aa_profile_mode_names[aa_g_profile_mode]);
+ return sysfs_emit(buffer, "%s\n", aa_profile_mode_names[aa_g_profile_mode]);
}
static int param_set_mode(const char *val, const struct kernel_param *kp)
On 3/17/26 17:08, Thorsten Blum wrote: > Replace sprintf() with sysfs_emit() in param_get_audit() and > param_get_mode(). sysfs_emit() is preferred for formatting sysfs output > because it provides safer bounds checking. Add terminating newlines as > suggested by checkpatch. > > Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> this has now been pulled into my tree > --- > security/apparmor/lsm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c > index c1d42fc72fdb..cdf19a5e7626 100644 > --- a/security/apparmor/lsm.c > +++ b/security/apparmor/lsm.c > @@ -17,6 +17,7 @@ > #include <linux/ptrace.h> > #include <linux/ctype.h> > #include <linux/sysctl.h> > +#include <linux/sysfs.h> > #include <linux/audit.h> > #include <linux/user_namespace.h> > #include <linux/netfilter_ipv4.h> > @@ -2073,7 +2074,7 @@ static int param_get_audit(char *buffer, const struct kernel_param *kp) > return -EINVAL; > if (apparmor_initialized && !aa_current_policy_view_capable(NULL)) > return -EPERM; > - return sprintf(buffer, "%s", audit_mode_names[aa_g_audit]); > + return sysfs_emit(buffer, "%s\n", audit_mode_names[aa_g_audit]); > } > > static int param_set_audit(const char *val, const struct kernel_param *kp) > @@ -2101,8 +2102,7 @@ static int param_get_mode(char *buffer, const struct kernel_param *kp) > return -EINVAL; > if (apparmor_initialized && !aa_current_policy_view_capable(NULL)) > return -EPERM; > - > - return sprintf(buffer, "%s", aa_profile_mode_names[aa_g_profile_mode]); > + return sysfs_emit(buffer, "%s\n", aa_profile_mode_names[aa_g_profile_mode]); > } > > static int param_set_mode(const char *val, const struct kernel_param *kp)
© 2016 - 2026 Red Hat, Inc.