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' */ /* 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); inp=BIO_push(bmd,in);
if (argc == 0) 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: case BIO_CTRL_RESET:
if (b->init) if (b->init)
EVP_DigestInit_ex(ctx,ctx->digest, NULL); ret = EVP_DigestInit_ex(ctx,ctx->digest, NULL);
else else
ret=0; ret=0;
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); if (ret > 0)
ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
break; break;
case BIO_C_GET_MD: case BIO_C_GET_MD:
if (b->init) if (b->init)
@ -207,8 +208,9 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_C_SET_MD: case BIO_C_SET_MD:
md=ptr; md=ptr;
EVP_DigestInit_ex(ctx,md, NULL); ret = EVP_DigestInit_ex(ctx,md, NULL);
b->init=1; if (ret > 0)
b->init=1;
break; break;
case BIO_CTRL_DUP: case BIO_CTRL_DUP:
dbio=ptr; dbio=ptr;