Path: blob/master/tools/testing/selftests/filesystems/anon_inode_test.c
26298 views
// SPDX-License-Identifier: GPL-2.01#define _GNU_SOURCE2#define __SANE_USERSPACE_TYPES__34#include <fcntl.h>5#include <stdio.h>6#include <sys/stat.h>78#include "../kselftest_harness.h"9#include "wrappers.h"1011TEST(anon_inode_no_chown)12{13int fd_context;1415fd_context = sys_fsopen("tmpfs", 0);16ASSERT_GE(fd_context, 0);1718ASSERT_LT(fchown(fd_context, 1234, 5678), 0);19ASSERT_EQ(errno, EOPNOTSUPP);2021EXPECT_EQ(close(fd_context), 0);22}2324TEST(anon_inode_no_chmod)25{26int fd_context;2728fd_context = sys_fsopen("tmpfs", 0);29ASSERT_GE(fd_context, 0);3031ASSERT_LT(fchmod(fd_context, 0777), 0);32ASSERT_EQ(errno, EOPNOTSUPP);3334EXPECT_EQ(close(fd_context), 0);35}3637TEST(anon_inode_no_exec)38{39int fd_context;4041fd_context = sys_fsopen("tmpfs", 0);42ASSERT_GE(fd_context, 0);4344ASSERT_LT(execveat(fd_context, "", NULL, NULL, AT_EMPTY_PATH), 0);45ASSERT_EQ(errno, EACCES);4647EXPECT_EQ(close(fd_context), 0);48}4950TEST(anon_inode_no_open)51{52int fd_context;5354fd_context = sys_fsopen("tmpfs", 0);55ASSERT_GE(fd_context, 0);5657ASSERT_GE(dup2(fd_context, 500), 0);58ASSERT_EQ(close(fd_context), 0);59fd_context = 500;6061ASSERT_LT(open("/proc/self/fd/500", 0), 0);62ASSERT_EQ(errno, ENXIO);6364EXPECT_EQ(close(fd_context), 0);65}6667TEST_HARNESS_MAIN68697071