Commit c128bb0f authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

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

parent 30fe028f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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)
+6 −4
Original line number Diff line number Diff line
@@ -176,9 +176,10 @@ 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;
		if (ret > 0)
			ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
		break;
	case BIO_C_GET_MD:
@@ -207,7 +208,8 @@ 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);
		ret = EVP_DigestInit_ex(ctx,md, NULL);
		if (ret > 0)
			b->init=1;
		break;
	case BIO_CTRL_DUP: