authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-03 16:52:32-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-03 16:52:32-05:00
log1141bfb21b82f8d3fc353e968a591f2ad9aaa571
tree65cd5209cf69c03445f85bb244d15ca00bb51a32
parentc4f81586f1212dfae8d647ad390676b1fda7bf89

Darwin can return EBADF for sendfile on non-files


1 files changed, 4 insertions(+), 2 deletions(-)

lib/std/os.zig+4-2
......@@ -3818,12 +3818,14 @@ pub fn sendfile(
38183818 switch (err) {
38193819 0 => return amt,
38203820
3821 EBADF => unreachable, // Always a race condition.
38223821 EFAULT => unreachable, // Segmentation fault.
38233822 EINVAL => unreachable,
38243823 ENOTCONN => unreachable, // `out_fd` is an unconnected socket.
38253824
3826 ENOTSUP, ENOTSOCK, ENOSYS => break :sf,
3825 // On macOS version 10.14.6, I observed Darwin return EBADF when
3826 // using sendfile on a valid open file descriptor of a file
3827 // system file.
3828 ENOTSUP, ENOTSOCK, ENOSYS, EBADF => break :sf,
38273829
38283830 EINTR => if (amt != 0) return amt else continue,
38293831