summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorHsuan-Chi Kuo <hsuanchikuo@gmail.com>2021-03-04 17:37:08 -0600
committerKees Cook <keescook@chromium.org>2021-08-11 11:48:28 -0700
commitb4d8a58f8dcfcc890f296696cadb76e77be44b5f (patch)
tree5ea7ce2adf796c1ae64f516dac67cfcc16a8f5a3 /kernel
parent19d67694745c5c9ed085d0d8332fa02d835a07d0 (diff)
downloadlinux-stable-b4d8a58f8dcfcc890f296696cadb76e77be44b5f.tar.gz
linux-stable-b4d8a58f8dcfcc890f296696cadb76e77be44b5f.tar.bz2
linux-stable-b4d8a58f8dcfcc890f296696cadb76e77be44b5f.zip
seccomp: Fix setting loaded filter count during TSYNC
The desired behavior is to set the caller's filter count to thread's. This value is reported via /proc, so this fixes the inaccurate count exposed to userspace; it is not used for reference counting, etc. Signed-off-by: Hsuan-Chi Kuo <hsuanchikuo@gmail.com> Link: https://lore.kernel.org/r/20210304233708.420597-1-hsuanchikuo@gmail.com Co-developed-by: Wiktor Garbacz <wiktorg@google.com> Signed-off-by: Wiktor Garbacz <wiktorg@google.com> Link: https://lore.kernel.org/lkml/20210810125158.329849-1-wiktorg@google.com Signed-off-by: Kees Cook <keescook@chromium.org> Cc: stable@vger.kernel.org Fixes: c818c03b661c ("seccomp: Report number of loaded filters in /proc/$pid/status")
Diffstat (limited to 'kernel')
-rw-r--r--kernel/seccomp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/seccomp.c b/kernel/seccomp.c
index 057e17f3215d..6469eca8078c 100644
--- a/kernel/seccomp.c
+++ b/kernel/seccomp.c
@@ -602,7 +602,7 @@ static inline void seccomp_sync_threads(unsigned long flags)
smp_store_release(&thread->seccomp.filter,
caller->seccomp.filter);
atomic_set(&thread->seccomp.filter_count,
- atomic_read(&thread->seccomp.filter_count));
+ atomic_read(&caller->seccomp.filter_count));
/*
* Don't let an unprivileged task work around