Reviewed by: steve@openssl.org
Check return codes properly in md BIO and dgst command.
const char *sig_name, const char *md_name,
const char *file,BIO *bmd)
{
- size_t len;
+ ssize_t len;
int i;
for (;;)
}
}
else
+ {
len=BIO_gets(bp,(char *)buf,BUFSIZE);
+ if (len <0)
+ {
+ ERR_print_errors(bio_err);
+ return 1;
+ }
+ }
if(binout) BIO_write(out, buf, len);
else
{
if (ret > 0)
{
- EVP_DigestUpdate(ctx,(unsigned char *)out,
- (unsigned int)ret);
+ if (EVP_DigestUpdate(ctx,(unsigned char *)out,
+ (unsigned int)ret)<=0) return (-1);
}
}
BIO_clear_retry_flags(b);
ctx=bp->ptr;
if (size < ctx->digest->md_size)
return(0);
- EVP_DigestFinal_ex(ctx,(unsigned char *)buf,&ret);
+ if (EVP_DigestFinal_ex(ctx,(unsigned char *)buf,&ret)<=0)
+ return -1;
+
return((int)ret);
}