aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2023-07-08 23:04:25 +0000
committerMartin Matuska <mm@FreeBSD.org>2023-07-08 23:08:46 +0000
commit055f920ebe21b8e05235363bc11a83cc649cdc6a (patch)
tree25fb7a20e3496c8dae4d2a9ea27828146110342c
parent2596008a0bded7efe578d7de30e42b78d6ab8d0f (diff)
downloadsrc-055f920ebe21b8e05235363bc11a83cc649cdc6a.tar.gz
src-055f920ebe21b8e05235363bc11a83cc649cdc6a.zip
cat: fallback on EBADF with copy_file_range(2)
When stdout is opened with O_APPEND, copy_file_range(2) fails with EBADF.
-rw-r--r--bin/cat/cat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bin/cat/cat.c b/bin/cat/cat.c
index 1158a839cfd8..44a406dd037b 100644
--- a/bin/cat/cat.c
+++ b/bin/cat/cat.c
@@ -283,7 +283,7 @@ scanfiles(char *argv[], int cooked __unused)
} else {
#ifndef BOOTSTRAP_CAT
if (in_kernel_copy(fd) == -1) {
- if (errno == EINVAL)
+ if (errno == EINVAL || errno == EBADF)
raw_cat(fd);
else
err(1, "stdout");