The LibreSSL 3.7.2 on my OpenBSD 7.3 VM seems return 7 bytes of
junk data before EOF/ECONNRESET when a client attempts to write
plain-text to a TLS socket.
---
 t/nntpd-tls.t | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/t/nntpd-tls.t b/t/nntpd-tls.t
index a11a0dd9..a16cc015 100644
--- a/t/nntpd-tls.t
+++ b/t/nntpd-tls.t
@@ -187,8 +187,12 @@ for my $args (
 
        my $s = tcp_connect($nntps);
        syswrite($s, '->accept_SSL_ will fail on this!');
-       ok(!sysread($s, my $rbuf, 128), 'EOF or ECONNRESET on ->accept_SSL 
fail');
-
+       my @r;
+       do { # some platforms or OpenSSL versions need an extra read
+               push @r, sysread($s, my $rbuf, 128);
+       } while ($r[-1] && @r < 2);
+       ok(!$r[-1], 'EOF or ECONNRESET on ->accept_SSL fail') or
+               diag explain(\@r);
        $c = undef;
        $td->kill;
        $td->join;

Reply via email to