From d711f459ae1b73f7a1e6e6b596c1aff3066ecc29 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 5 Jan 2023 16:36:55 -0700 Subject: [PATCH] std.crypto.tls.Client: fix crash in read() An abstraction for giving bytes to the read buffer didn't check for an out-of-space condition. --- lib/std/crypto/tls/Client.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/std/crypto/tls/Client.zig b/lib/std/crypto/tls/Client.zig index 44891a1973..627ad7ea59 100644 --- a/lib/std/crypto/tls/Client.zig +++ b/lib/std/crypto/tls/Client.zig @@ -1207,6 +1207,7 @@ const VecPut = struct { /// Returns the amount actually put which is always equal to bytes.len /// unless the vectors ran out of space. fn put(vp: *VecPut, bytes: []const u8) usize { + if (vp.idx >= vp.iovecs.len) return 0; var bytes_i: usize = 0; while (true) { const v = vp.iovecs[vp.idx];