Submitted by: Victor B. Wagner <vitus@cryptocom.ru>
Reviewed by: steve@openssl.org

Check return codes properly in md BIO and dgst command.
diff --git a/apps/dgst.c b/apps/dgst.c
index 2abb3e0..83b79c3 100644
--- a/apps/dgst.c
+++ b/apps/dgst.c
@@ -551,7 +551,7 @@
 	  const char *sig_name, const char *md_name,
 	  const char *file,BIO *bmd)
 	{
-	size_t len;
+	ssize_t len;
 	int i;
 
 	for (;;)
@@ -598,7 +598,14 @@
 			}
 		}
 	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