提交 a85c9021 编写于 作者: P Pauli

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: NRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12458)
上级 3fc164e8
......@@ -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;
}
/*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册