diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig index 6f6e14792b..b8fa6f2313 100644 --- a/lib/std/Io/Reader.zig +++ b/lib/std/Io/Reader.zig @@ -367,8 +367,11 @@ pub fn appendRemainingUnlimited( const buffer_contents = r.buffer[r.seek..r.end]; try list.ensureUnusedCapacity(gpa, buffer_contents.len + bump); list.appendSliceAssumeCapacity(buffer_contents); - r.seek = 0; - r.end = 0; + // If statement protects `ending`. + if (r.end != 0) { + r.seek = 0; + r.end = 0; + } // From here, we leave `buffer` empty, appending directly to `list`. var writer: Writer = .{ .buffer = undefined, diff --git a/lib/std/http/test.zig b/lib/std/http/test.zig index df80ca6339..2b8f64c606 100644 --- a/lib/std/http/test.zig +++ b/lib/std/http/test.zig @@ -414,7 +414,8 @@ test "general client/server API coverage" { log.info("{f} {t} {s}", .{ request.head.method, request.head.version, request.head.target }); const gpa = std.testing.allocator; - const body = try (try request.readerExpectContinue(&.{})).allocRemaining(gpa, .unlimited); + const reader = (try request.readerExpectContinue(&.{})); + const body = try reader.allocRemaining(gpa, .unlimited); defer gpa.free(body); if (mem.startsWith(u8, request.head.target, "/get")) {