summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2018-05-04 14:44:19 +0200
committerRichard Levitte <levitte@openssl.org>2018-05-05 00:14:30 +0200
commit0d94212a046e87fafea6e83e8ea2b2a58db49979 (patch)
tree106101658d418c797f9c859bc1a44c5d59a7d8b7
parentc16ab9dc6303e42519559f6053bf7e4931203a79 (diff)
BIO_s_mem() write: Skip early when input length is zero
When the input length is zero, just return zero early. Otherwise, there's a small chance that memory allocation is engaged, fails and returns -1, which is a bit confusing when nothing should be written. Fixes #4782 #4827 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/6175)
-rw-r--r--crypto/bio/bss_mem.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c
index 7678a1df58..98819846dc 100644
--- a/crypto/bio/bss_mem.c
+++ b/crypto/bio/bss_mem.c
@@ -216,6 +216,8 @@ static int mem_write(BIO *b, const char *in, int inl)
goto end;
}
BIO_clear_retry_flags(b);
+ if (inl == 0)
+ return 0;
blen = bbm->readp->length;
mem_buf_sync(b);
if (BUF_MEM_grow_clean(bbm->buf, blen + inl) == 0)