diff options
author | Martin Matuska <mm@FreeBSD.org> | 2023-11-19 01:09:34 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2023-11-26 00:24:42 +0000 |
commit | a4d16707a81b13cb711a4a75843d5d24486de150 (patch) | |
tree | 91482496c24e45097f656c5575f9988f5fb57c1f | |
parent | 1e4798e9677f17a7cdc9a1873a0c6e008fc620d8 (diff) | |
download | src-a4d16707a81b13cb711a4a75843d5d24486de150.tar.gz src-a4d16707a81b13cb711a4a75843d5d24486de150.zip |
cat: fallback on EISDIR with copy_file_range(2)
The filesystem may support reading directories directly
when security.bsd.allow_read_dir is set.
PR: 275099
(cherry picked from commit 3c773cad57064c23873f286fbec69f6f0305b889)
-rw-r--r-- | bin/cat/cat.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bin/cat/cat.c b/bin/cat/cat.c index ec14451acd0c..1468faf494a3 100644 --- a/bin/cat/cat.c +++ b/bin/cat/cat.c @@ -281,7 +281,8 @@ scanfiles(char *argv[], int cooked __unused) } else { #ifndef BOOTSTRAP_CAT if (in_kernel_copy(fd) == -1) { - if (errno == EINVAL || errno == EBADF) + if (errno == EINVAL || errno == EBADF || + errno == EISDIR) raw_cat(fd); else err(1, "stdout"); |