Messages in this thread Patch in this message | | | Date | Thu, 6 Sep 2018 16:29:35 +0200 | Subject | [PATCH] Yama: use READ_ONCE() when reading ptrace_scope | From | Jann Horn <> |
| |
ptrace_scope can be modified concurrently. To ensure that the compiler only reads ptrace_scope once, use READ_ONCE() here. (In practice, at least the version of gcc on my machine only generates a single read anyway, and it seems unlikely that a compiler would do something different.)
This also serves as documentation for the reader.
Signed-off-by: Jann Horn <jannh@google.com> --- security/yama/yama_lsm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c index ffda91a4a1aa..3b18e4455f53 100644 --- a/security/yama/yama_lsm.c +++ b/security/yama/yama_lsm.c @@ -362,7 +362,7 @@ static int yama_ptrace_access_check(struct task_struct *child, /* require ptrace target be a child of ptracer on attach */ if (mode & PTRACE_MODE_ATTACH) { - switch (ptrace_scope) { + switch (READ_ONCE(ptrace_scope)) { case YAMA_SCOPE_DISABLED: /* No additional restrictions. */ break; @@ -404,7 +404,7 @@ int yama_ptrace_traceme(struct task_struct *parent) int rc = 0; /* Only disallow PTRACE_TRACEME on more aggressive settings. */ - switch (ptrace_scope) { + switch (READ_ONCE(ptrace_scope)) { case YAMA_SCOPE_CAPABILITY: if (!has_ns_capability(parent, current_user_ns(), CAP_SYS_PTRACE)) rc = -EPERM; -- 2.19.0.rc1.350.ge57e33dbd1-goog
| |