aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Johnston <markjdb@gmail.com>2021-05-13 12:54:13 -0400
committerGitHub <noreply@github.com>2021-05-13 18:54:13 +0200
commit80f9b41855d0f32880a09b8966a1961fb53e4ea9 (patch)
treec62f9f6b96697c4ad772893bfbd3d5437e5778d1
parentf171a9af2294119b864b807d30b6f0e04747a31c (diff)
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.
-rw-r--r--sys/freebsd/posix_fs.txt7
-rw-r--r--sys/freebsd/posix_fs.txt.const2
2 files changed, 4 insertions, 5 deletions
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