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 2eb59231870f351ceddee7834805ddffaf6d3d2c..62609956852343c027913848ec4771eaf5a17bd1 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 -- 2.54.0