From 80f9b41855d0f32880a09b8966a1961fb53e4ea9 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Thu, 13 May 2021 12:54:13 -0400 Subject: sys/freebsd: disable close_range(2) and closefrom(2) (#2585) These tend to generate false-positive reports when, e.g., tunfd gets clobbered. In particular, tunfd is dup'ed to fd 240, so close_range(fd, ~0, 0) tends to result in an error. These system calls are not very interesting in light of the fact that close(2) is still available, so let's just disable them. --- sys/freebsd/posix_fs.txt | 7 ++++--- sys/freebsd/posix_fs.txt.const | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'sys') diff --git a/sys/freebsd/posix_fs.txt b/sys/freebsd/posix_fs.txt index 67816a81d..0f0f6178d 100644 --- a/sys/freebsd/posix_fs.txt +++ b/sys/freebsd/posix_fs.txt @@ -21,8 +21,9 @@ open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd open$dir(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd_dir openat(fd fd_dir[opt], file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd close(fd fd) -close_range(fd fd, max_fd fd, flags flags[close_range_flags]) -freebsd12_closefrom(fd fd) +# Don't close fd ranges, tunfd ends up being closed as collateral damage. +#close_range(fd fd, max_fd fd, flags flags[close_range_flags]) +#freebsd12_closefrom(fd fd) read(fd fd, buf buffer[out], count len[buf]) readv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec]) preadv(fd fd, vec ptr[in, array[iovec_out]], vlen len[vec], off fileoff) @@ -176,7 +177,7 @@ freebsd11_statfs { filesystem_types = "apfs", "cd9660", "exfat", "ext2fs", "geli", "hammer", "hammer2", "hfsp", "msdosfs", "ntfs", "ufs", "zfs" open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, FASYNC, O_CLOEXEC, O_CREAT, O_DIRECT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_SYNC, O_TRUNC, O_EXEC, O_TTY_INIT, O_VERIFY, O_PATH, O_EMPTY_PATH open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH -close_range_flags = 0 +#close_range_flags = 0 seek_whence = SEEK_SET, SEEK_CUR, SEEK_END, SEEK_DATA, SEEK_HOLE pipe_flags = O_NONBLOCK, O_CLOEXEC fadvise_advice = POSIX_FADV_NORMAL, POSIX_FADV_RANDOM, POSIX_FADV_SEQUENTIAL, POSIX_FADV_WILLNEED, POSIX_FADV_DONTNEED, POSIX_FADV_NOREUSE diff --git a/sys/freebsd/posix_fs.txt.const b/sys/freebsd/posix_fs.txt.const index 7746fd0cb..9b4464912 100644 --- a/sys/freebsd/posix_fs.txt.const +++ b/sys/freebsd/posix_fs.txt.const @@ -62,7 +62,6 @@ SEEK_HOLE = 4 SEEK_SET = 0 STATFS_VERSION = 538182936 SYS_close = 6 -SYS_close_range = 575 SYS_dup = 41 SYS_dup2 = 90 SYS_fpathconf = 192 @@ -72,7 +71,6 @@ SYS_freebsd11_fstatat = 493 SYS_freebsd11_getfsstat = 395 SYS_freebsd11_lstat = 190 SYS_freebsd11_stat = 188 -SYS_freebsd12_closefrom = 509 SYS_fstat = 551 SYS_fstatat = 552 SYS_getfsstat = 557 -- cgit mrf-deployment