Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.17 69 lines 1.2 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2#define _GNU_SOURCE 3#define __SANE_USERSPACE_TYPES__ 4 5#include <fcntl.h> 6#include <stdio.h> 7#include <sys/stat.h> 8 9#include "../kselftest_harness.h" 10#include "wrappers.h" 11 12TEST(anon_inode_no_chown) 13{ 14 int fd_context; 15 16 fd_context = sys_fsopen("tmpfs", 0); 17 ASSERT_GE(fd_context, 0); 18 19 ASSERT_LT(fchown(fd_context, 1234, 5678), 0); 20 ASSERT_EQ(errno, EOPNOTSUPP); 21 22 EXPECT_EQ(close(fd_context), 0); 23} 24 25TEST(anon_inode_no_chmod) 26{ 27 int fd_context; 28 29 fd_context = sys_fsopen("tmpfs", 0); 30 ASSERT_GE(fd_context, 0); 31 32 ASSERT_LT(fchmod(fd_context, 0777), 0); 33 ASSERT_EQ(errno, EOPNOTSUPP); 34 35 EXPECT_EQ(close(fd_context), 0); 36} 37 38TEST(anon_inode_no_exec) 39{ 40 int fd_context; 41 42 fd_context = sys_fsopen("tmpfs", 0); 43 ASSERT_GE(fd_context, 0); 44 45 ASSERT_LT(execveat(fd_context, "", NULL, NULL, AT_EMPTY_PATH), 0); 46 ASSERT_EQ(errno, EACCES); 47 48 EXPECT_EQ(close(fd_context), 0); 49} 50 51TEST(anon_inode_no_open) 52{ 53 int fd_context; 54 55 fd_context = sys_fsopen("tmpfs", 0); 56 ASSERT_GE(fd_context, 0); 57 58 ASSERT_GE(dup2(fd_context, 500), 0); 59 ASSERT_EQ(close(fd_context), 0); 60 fd_context = 500; 61 62 ASSERT_LT(open("/proc/self/fd/500", 0), 0); 63 ASSERT_EQ(errno, ENXIO); 64 65 EXPECT_EQ(close(fd_context), 0); 66} 67 68TEST_HARNESS_MAIN 69