Don't ignore return value of EVP_DigestInit_ex() in md BIOs and dgst utility.
This commit is contained in:
parent
30fe028f07
commit
c128bb0fa2
2 changed files with 13 additions and 5 deletions
|
@ -332,7 +332,13 @@ int MAIN(int argc, char **argv)
|
|||
|
||||
|
||||
/* we use md as a filter, reading from 'in' */
|
||||
BIO_set_md(bmd,md);
|
||||
if (!BIO_set_md(bmd,md))
|
||||
{
|
||||
BIO_printf(bio_err, "Error setting digest %s\n", pname);
|
||||
ERR_print_errors(bio_err);
|
||||
goto end;
|
||||
}
|
||||
|
||||
inp=BIO_push(bmd,in);
|
||||
|
||||
if (argc == 0)
|
||||
|
|
|
@ -176,10 +176,11 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
|
|||
{
|
||||
case BIO_CTRL_RESET:
|
||||
if (b->init)
|
||||
EVP_DigestInit_ex(ctx,ctx->digest, NULL);
|
||||
ret = EVP_DigestInit_ex(ctx,ctx->digest, NULL);
|
||||
else
|
||||
ret=0;
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
|
||||
if (ret > 0)
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
|
||||
break;
|
||||
case BIO_C_GET_MD:
|
||||
if (b->init)
|
||||
|
@ -207,8 +208,9 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
|
|||
|
||||
case BIO_C_SET_MD:
|
||||
md=ptr;
|
||||
EVP_DigestInit_ex(ctx,md, NULL);
|
||||
b->init=1;
|
||||
ret = EVP_DigestInit_ex(ctx,md, NULL);
|
||||
if (ret > 0)
|
||||
b->init=1;
|
||||
break;
|
||||
case BIO_CTRL_DUP:
|
||||
dbio=ptr;
|
||||
|
|
Loading…
Reference in a new issue