aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Io/Reader.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-07-11 10:03:54 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-07-14 00:14:21 -0700
commit5496901e713dc1a75de289d7e8e3c79e7fee9510 (patch)
tree269aa691017a66c9256f914b90308447a9a3a77c /lib/std/Io/Reader.zig
parent093fe02b75a4a28f7faecea63ce2ae9639ef5b66 (diff)
downloadzig-5496901e713dc1a75de289d7e8e3c79e7fee9510.tar.gz
zig-5496901e713dc1a75de289d7e8e3c79e7fee9510.zip
std.Io.Reader.appendRemaining: add missing assert
Diffstat (limited to 'lib/std/Io/Reader.zig')
-rw-r--r--lib/std/Io/Reader.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig
index e6a7afeb3e..c8bd0f3000 100644
--- a/lib/std/Io/Reader.zig
+++ b/lib/std/Io/Reader.zig
@@ -245,6 +245,7 @@ pub fn appendRemaining(
list: *std.ArrayListAlignedUnmanaged(u8, alignment),
limit: Limit,
) LimitedAllocError!void {
+ assert(r.buffer.len != 0); // Needed to detect limit exceeded without losing data.
const buffer = r.buffer;
const buffer_contents = buffer[r.seek..r.end];
const copy_len = limit.minInt(buffer_contents.len);
@@ -1657,11 +1658,12 @@ test "readAlloc when the backing reader provides one byte at a time" {
}
};
const str = "This is a test";
+ var tiny_buffer: [1]u8 = undefined;
var one_byte_stream: OneByteReader = .{
.str = str,
.i = 0,
.reader = .{
- .buffer = &.{},
+ .buffer = &tiny_buffer,
.vtable = &.{ .stream = OneByteReader.stream },
.seek = 0,
.end = 0,