Fix error
This commit is contained in:
+6
-12
@@ -131,8 +131,7 @@ char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx)
|
|||||||
* padding too. )
|
* padding too. )
|
||||||
* Returns 1 on success or 0 on error
|
* Returns 1 on success or 0 on error
|
||||||
*/
|
*/
|
||||||
int ssl3_cbc_digest_record(SSL *s,
|
int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,
|
||||||
const EVP_MD_CTX *ctx,
|
|
||||||
unsigned char *md_out,
|
unsigned char *md_out,
|
||||||
size_t *md_out_size,
|
size_t *md_out_size,
|
||||||
const unsigned char header[13],
|
const unsigned char header[13],
|
||||||
@@ -167,8 +166,7 @@ int ssl3_cbc_digest_record(SSL *s,
|
|||||||
*/
|
*/
|
||||||
size_t md_length_size = 8;
|
size_t md_length_size = 8;
|
||||||
char length_is_big_endian = 1;
|
char length_is_big_endian = 1;
|
||||||
int ret = 0;
|
int ret;
|
||||||
const EVP_MD *md = NULL;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a, hopefully redundant, check that allows us to forget about
|
* This is a, hopefully redundant, check that allows us to forget about
|
||||||
@@ -463,11 +461,7 @@ int ssl3_cbc_digest_record(SSL *s,
|
|||||||
md_ctx = EVP_MD_CTX_new();
|
md_ctx = EVP_MD_CTX_new();
|
||||||
if (md_ctx == NULL)
|
if (md_ctx == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
md = ssl_evp_md_fetch(s->ctx->libctx, EVP_MD_type(EVP_MD_CTX_md(ctx)),
|
if (EVP_DigestInit_ex(md_ctx, EVP_MD_CTX_md(ctx), NULL /* engine */ ) <= 0)
|
||||||
s->ctx->propq);
|
|
||||||
if (md == NULL)
|
|
||||||
goto err;
|
|
||||||
if (EVP_DigestInit_ex(md_ctx, md, NULL /* engine */ ) <= 0)
|
|
||||||
goto err;
|
goto err;
|
||||||
if (is_sslv3) {
|
if (is_sslv3) {
|
||||||
/* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */
|
/* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */
|
||||||
@@ -490,10 +484,10 @@ int ssl3_cbc_digest_record(SSL *s,
|
|||||||
ret = EVP_DigestFinal(md_ctx, md_out, &md_out_size_u);
|
ret = EVP_DigestFinal(md_ctx, md_out, &md_out_size_u);
|
||||||
if (ret && md_out_size)
|
if (ret && md_out_size)
|
||||||
*md_out_size = md_out_size_u;
|
*md_out_size = md_out_size_u;
|
||||||
|
EVP_MD_CTX_free(md_ctx);
|
||||||
|
|
||||||
ret = 1;
|
return 1;
|
||||||
err:
|
err:
|
||||||
EVP_MD_CTX_free(md_ctx);
|
EVP_MD_CTX_free(md_ctx);
|
||||||
ssl_evp_md_free(md);
|
return 0;
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user