]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
seccomp: Use FIFO semantics to order notifications
authorSargun Dhillon <sargun@sargun.me>
Thu, 28 Apr 2022 01:54:46 +0000 (18:54 -0700)
committerKees Cook <keescook@chromium.org>
Fri, 29 Apr 2022 18:30:54 +0000 (11:30 -0700)
Previously, the seccomp notifier used LIFO semantics, where each
notification would be added on top of the stack, and notifications
were popped off the top of the stack. This could result one process
that generates a large number of notifications preventing other
notifications from being handled. This patch moves from LIFO (stack)
semantics to FIFO (queue semantics).

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220428015447.13661-1-sargun@sargun.me
kernel/seccomp.c

index b5ac87f6dbd41b7eee646c268860d997b9eaead1..3caa0fe85235eeea2ba9b38e98fa0be1e5f9e95e 100644 (file)
@@ -1100,7 +1100,7 @@ static int seccomp_do_user_notification(int this_syscall,
        n.data = sd;
        n.id = seccomp_next_notify_id(match);
        init_completion(&n.ready);
-       list_add(&n.list, &match->notif->notifications);
+       list_add_tail(&n.list, &match->notif->notifications);
        INIT_LIST_HEAD(&n.addfd);
 
        up(&match->notif->request);