]> gitweb.factorcode.org Git - factor.git/commitdiff
io.socketes.secure.openssl: fix do-ssl-read.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 27 Dec 2021 16:44:47 +0000 (08:44 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 27 Dec 2021 16:44:47 +0000 (08:44 -0800)
Same issue as previous fix for do-ssl-write.

basis/io/sockets/secure/openssl/openssl.factor

index 8f55e3008c1370beb290ba60f923e0ffe1d14c8e..d88c4fd8bb374b693c969349d5868237368e114c 100644 (file)
@@ -322,7 +322,9 @@ PRIVATE>
 ! Input ports
 : do-ssl-read ( buffer ssl-handle -- event/f )
     2dup handle>> swap [ buffer-end ] [ buffer-capacity ] bi SSL_read
-    [ check-ssl-error ] keep swap [ 2nip ] [ swap buffer+ f ] if* ;
+    [ check-ssl-error ] keep swap [ 2nip ] [
+        dup 0 > [ swap buffer+ ] [ 2drop ] if f
+    ] if* ;
 
 M: ssl-handle refill
     dup maybe-handshake [ buffer>> ] dip do-ssl-read ;