From 05fee3b22b593c6b0829499b53f26f5750df3645 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 29 Dec 2022 18:56:51 -0700 Subject: [PATCH] std.crypto.tls.Client: fix eof logic Before this, it incorrectly returned true when there was still cleartext to be read. --- lib/std/crypto/tls/Client.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/std/crypto/tls/Client.zig b/lib/std/crypto/tls/Client.zig index 2eb5923187..6260995685 100644 --- a/lib/std/crypto/tls/Client.zig +++ b/lib/std/crypto/tls/Client.zig @@ -754,7 +754,9 @@ pub fn writeAll(c: *Client, stream: net.Stream, bytes: []const u8) !void { } pub fn eof(c: Client) bool { - return c.received_close_notify and c.partial_ciphertext_idx >= c.partial_ciphertext_end; + return c.received_close_notify and + c.partial_cleartext_idx >= c.partial_ciphertext_idx and + c.partial_ciphertext_idx >= c.partial_ciphertext_end; } /// Returns the number of bytes read, calling the underlying read function the