[openssl] master update

Dr. Paul Dale pauli at openssl.org
Sat Jul 18 06:55:20 UTC 2020


The branch master has been updated
       via  a85c9021252e4ab53a15b46e773808864a63d3d1 (commit)
      from  3fc164e8d18dcdef57d297956debf8d966e7fbef (commit)


- Log -----------------------------------------------------------------
commit a85c9021252e4ab53a15b46e773808864a63d3d1
Author: Pauli <paul.dale at oracle.com>
Date:   Thu Jul 16 11:15:42 2020 +1000

    mac: always pass a non-NULL output size pointer to providers.
    
    The backend code varies for the different MACs and sometimes sets the output
    length, sometimes checks the return pointer and sometimes neither.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/12458)

-----------------------------------------------------------------------

Summary of changes:
 crypto/evp/mac_lib.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/crypto/evp/mac_lib.c b/crypto/evp/mac_lib.c
index b7bfe8921f..a5c1b44666 100644
--- a/crypto/evp/mac_lib.c
+++ b/crypto/evp/mac_lib.c
@@ -120,15 +120,14 @@ int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen)
 int EVP_MAC_final(EVP_MAC_CTX *ctx,
                   unsigned char *out, size_t *outl, size_t outsize)
 {
-    int l = EVP_MAC_size(ctx);
+    size_t l = EVP_MAC_size(ctx);
+    int res = 1;
 
-    if (l < 0)
-        return 0;
+    if (out != NULL)
+        res = ctx->meth->final(ctx->data, out, &l, outsize);
     if (outl != NULL)
         *outl = l;
-    if (out == NULL)
-        return 1;
-    return ctx->meth->final(ctx->data, out, outl, outsize);
+    return res;
 }
 
 /*


More information about the openssl-commits mailing list