Path: blob/master/tools/testing/selftests/filesystems/anon_inode_test.c
50004 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);4344char *const empty_argv[] = {NULL};45char *const empty_envp[] = {NULL};4647ASSERT_LT(execveat(fd_context, "", empty_argv, empty_envp, AT_EMPTY_PATH), 0);48ASSERT_EQ(errno, EACCES);4950EXPECT_EQ(close(fd_context), 0);51}5253TEST(anon_inode_no_open)54{55int fd_context;5657fd_context = sys_fsopen("tmpfs", 0);58ASSERT_GE(fd_context, 0);5960ASSERT_GE(dup2(fd_context, 500), 0);61ASSERT_EQ(close(fd_context), 0);62fd_context = 500;6364ASSERT_LT(open("/proc/self/fd/500", 0), 0);65ASSERT_EQ(errno, ENXIO);6667EXPECT_EQ(close(fd_context), 0);68}6970TEST_HARNESS_MAIN71727374