[PATCH 5.10 13/96] seccomp: Fix setting loaded filter count during TSYNC

From: Greg Kroah-Hartman
Date: Mon Aug 16 2021 - 09:09:50 EST


From: Hsuan-Chi Kuo <hsuanchikuo@xxxxxxxxx>

commit b4d8a58f8dcfcc890f296696cadb76e77be44b5f upstream.

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@xxxxxxxxx>
Link: https://lore.kernel.org/r/20210304233708.420597-1-hsuanchikuo@xxxxxxxxx
Co-developed-by: Wiktor Garbacz <wiktorg@xxxxxxxxxx>
Signed-off-by: Wiktor Garbacz <wiktorg@xxxxxxxxxx>
Link: https://lore.kernel.org/lkml/20210810125158.329849-1-wiktorg@xxxxxxxxxx
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Fixes: c818c03b661c ("seccomp: Report number of loaded filters in /proc/$pid/status")
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
kernel/seccomp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/seccomp.c
+++ b/kernel/seccomp.c
@@ -511,7 +511,7 @@ static inline void seccomp_sync_threads(
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