summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2019-03-26 15:25:15 +0000
committerMatt Caswell <matt@openssl.org>2019-03-27 10:20:52 +0000
commit9437fe0b01fee8dfd23303d66ad45c2f523a8f25 (patch)
tree024ec89ef493bb7fe79f306f1ecd1fb873bd51a5 /crypto/evp
parentce283e1011d7b9e08a6c137d8d670ffc77cb2e3b (diff)
Tolerate 0 byte input length for Update functions
We treat that as automatic success. Other EVP_*Update functions already do this (e.g. EVP_EncryptUpdate, EVP_DecryptUpdate etc). EVP_EncodeUpdate is a bit of an anomoly. That treats 0 byte input length as an error. Fixes #8576 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8587) (cherry picked from commit a8274ea351988aa754cb9983b27d7059613ee11e)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/digest.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
index f78dab7678..f405a81416 100644
--- a/crypto/evp/digest.c
+++ b/crypto/evp/digest.c
@@ -150,6 +150,9 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
{
+ if (count == 0)
+ return 1;
+
return ctx->update(ctx, data, count);
}