Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

security: replace memcpy() with get_task_comm()

Quoted from Linus [0]:

selinux never wanted a lock, and never wanted any kind of *consistent*
result, it just wanted a *stable* result.

Using get_task_comm() to read the task comm ensures that the name is
always NUL-terminated, regardless of the source string. This approach also
facilitates future extensions to the task comm.

Link: https://lkml.kernel.org/r/20241007144911.27693-4-laoar.shao@gmail.com
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Link: https://lore.kernel.org/all/CAHk-=wivfrF0_zvf+oj6==Sh=-npJooP8chLPEfaFV0oNYTTBA@mail.gmail.com/ [0]
Acked-by: Paul Moore <paul@paul-moore.com>
Cc: James Morris <jmorris@namei.org>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Cc: Stephen Smalley <stephen.smalley.work@gmail.com>
Cc: Ondrej Mosnacek <omosnace@redhat.com>
Cc: Alejandro Colomar <alx@kernel.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Airlie <airlied@gmail.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Justin Stitt <justinstitt@google.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Matus Jokay <matus.jokay@stuba.sk>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Quentin Monnet <qmo@kernel.org>
Cc: Simon Horman <horms@kernel.org>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Yafang Shao and committed by
Andrew Morton
d4ee4ac3 286d7a54

+3 -3
+2 -2
security/lsm_audit.c
··· 207 207 BUILD_BUG_ON(sizeof(a->u) > sizeof(void *)*2); 208 208 209 209 audit_log_format(ab, " pid=%d comm=", task_tgid_nr(current)); 210 - audit_log_untrustedstring(ab, memcpy(comm, current->comm, sizeof(comm))); 210 + audit_log_untrustedstring(ab, get_task_comm(comm, current)); 211 211 212 212 switch (a->type) { 213 213 case LSM_AUDIT_DATA_NONE: ··· 302 302 char comm[sizeof(tsk->comm)]; 303 303 audit_log_format(ab, " opid=%d ocomm=", pid); 304 304 audit_log_untrustedstring(ab, 305 - memcpy(comm, tsk->comm, sizeof(comm))); 305 + get_task_comm(comm, tsk)); 306 306 } 307 307 } 308 308 break;
+1 -1
security/selinux/selinuxfs.c
··· 708 708 if (new_value) { 709 709 char comm[sizeof(current->comm)]; 710 710 711 - memcpy(comm, current->comm, sizeof(comm)); 711 + strscpy(comm, current->comm); 712 712 pr_err("SELinux: %s (%d) set checkreqprot to 1. This is no longer supported.\n", 713 713 comm, current->pid); 714 714 }