Undo change from 1.7 to 1.8: Returning -1 for an attempt to read from an empty buffer is empty is not an error that should be signalled via the error queue, it's a 'retry read' condition and is signalled as such.
diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c index d4d956c..28ff758 100644 --- a/crypto/bio/bss_mem.c +++ b/crypto/bio/bss_mem.c
@@ -163,11 +163,9 @@ } } else if (bm->length == 0) { - if (b->num != 0) + ret = b->num; + if (ret != 0) BIO_set_retry_read(b); - ret= b->num; - if(ret < 0) - BIOerr(BIO_F_MEM_READ,BIO_R_EOF_ON_MEMORY_BIO); } return(ret); }