selftests/seccomp: Accept any valid fd in user_notification_addfd
authorSeth Forshee <seth.forshee@canonical.com>
Thu, 28 Jan 2021 16:17:21 +0000 (10:17 -0600)
committerShuah Khan <skhan@linuxfoundation.org>
Wed, 10 Feb 2021 00:39:01 +0000 (17:39 -0700)
This test expects fds to have specific values, which works fine
when the test is run standalone. However, the kselftest runner
consumes a couple of extra fds for redirection when running
tests, so the test fails when run via kselftest.

Change the test to pass on any valid fd number.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/seccomp/seccomp_bpf.c

index 26c72f2b61b1b23220eeb3e27dfea82c75661fa9..9338df6f4ca8ecf1dc73eb007e3c1e0396cc352b 100644 (file)
@@ -4019,18 +4019,14 @@ TEST(user_notification_addfd)
 
        /* Verify we can set an arbitrary remote fd */
        fd = ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd);
-       /*
-        * The child has fds 0(stdin), 1(stdout), 2(stderr), 3(memfd),
-        * 4(listener), so the newly allocated fd should be 5.
-        */
-       EXPECT_EQ(fd, 5);
+       EXPECT_GE(fd, 0);
        EXPECT_EQ(filecmp(getpid(), pid, memfd, fd), 0);
 
        /* Verify we can set an arbitrary remote fd with large size */
        memset(&big, 0x0, sizeof(big));
        big.addfd = addfd;
        fd = ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD_BIG, &big);
-       EXPECT_EQ(fd, 6);
+       EXPECT_GE(fd, 0);
 
        /* Verify we can set a specific remote fd */
        addfd.newfd = 42;