selftests/seccomp: Zero out seccomp_notif
authorSargun Dhillon <sargun@sargun.me>
Sun, 29 Dec 2019 06:24:49 +0000 (22:24 -0800)
committerKees Cook <keescook@chromium.org>
Thu, 2 Jan 2020 21:03:42 +0000 (13:03 -0800)
The seccomp_notif structure should be zeroed out prior to calling the
SECCOMP_IOCTL_NOTIF_RECV ioctl. Previously, the kernel did not check
whether these structures were zeroed out or not, so these worked.

This patch zeroes out the seccomp_notif data structure prior to calling
the ioctl.

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
Reviewed-by: Tycho Andersen <tycho@tycho.ws>
Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>
Link: https://lore.kernel.org/r/20191229062451.9467-1-sargun@sargun.me
Fixes: 6a21cc50f0c7 ("seccomp: add a return code to trap to userspace")
Cc: stable@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
tools/testing/selftests/seccomp/seccomp_bpf.c

index 6944b89..f53f149 100644 (file)
@@ -3278,6 +3278,7 @@ TEST(user_notification_signal)
 
        close(sk_pair[1]);
 
+       memset(&req, 0, sizeof(req));
        EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_RECV, &req), 0);
 
        EXPECT_EQ(kill(pid, SIGUSR1), 0);
@@ -3296,6 +3297,7 @@ TEST(user_notification_signal)
        EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_SEND, &resp), -1);
        EXPECT_EQ(errno, ENOENT);
 
+       memset(&req, 0, sizeof(req));
        EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_RECV, &req), 0);
 
        resp.id = req.id;