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