diff options
author | Matt Caswell <matt@openssl.org> | 2019-03-26 15:25:15 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2019-03-27 10:20:52 +0000 |
commit | 9437fe0b01fee8dfd23303d66ad45c2f523a8f25 (patch) | |
tree | 024ec89ef493bb7fe79f306f1ecd1fb873bd51a5 /crypto/evp | |
parent | ce283e1011d7b9e08a6c137d8d670ffc77cb2e3b (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.c | 3 |
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); } |