Don't ignore return value of EVP_DigestInit_ex() in md BIOs and dgst utility.

This commit is contained in:
Dr. Stephen Henson 2004-08-05 18:09:50 +00:00
parent 30fe028f07
commit c128bb0fa2
2 changed files with 13 additions and 5 deletions

View file

@ -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)

View file

@ -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;