std.fs.File.Writer.sendFile: handle sendfile errors

fixes #24842
This commit is contained in:
Andrew Kelley 2025-08-13 22:16:08 -07:00
parent 27d6614f81
commit 6bcdcf85c7

View file

@ -1823,6 +1823,11 @@ pub const Writer = struct {
.NOBUFS => w.sendfile_err = error.SystemResources,
else => |err| w.sendfile_err = posix.unexpectedErrno(err),
}
if (w.sendfile_err != null) {
// Give calling code chance to observe the error before trying
// something else.
return 0;
}
if (sbytes == 0) {
file_reader.size = file_reader.pos;
return error.EndOfStream;
@ -1879,6 +1884,11 @@ pub const Writer = struct {
.PIPE => w.sendfile_err = error.BrokenPipe,
else => |err| w.sendfile_err = posix.unexpectedErrno(err),
}
if (w.sendfile_err != null) {
// Give calling code chance to observe the error before trying
// something else.
return 0;
}
if (len == 0) {
file_reader.size = file_reader.pos;
return error.EndOfStream;