diff options
author | Richard Levitte <levitte@openssl.org> | 2018-05-04 14:44:19 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-05-05 00:14:30 +0200 |
commit | 0d94212a046e87fafea6e83e8ea2b2a58db49979 (patch) | |
tree | 106101658d418c797f9c859bc1a44c5d59a7d8b7 | |
parent | c16ab9dc6303e42519559f6053bf7e4931203a79 (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.c | 2 |
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) |