changeset 465:02fcea6c40e2

(md5_stream): Check for read failure and return indication of success rather than second argument.
author Jim Meyering <jim@meyering.net>
date Fri, 21 Jul 1995 04:46:50 +0000
parents 75ad7d4bcf31
children b4be735c843c
files lib/md5.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -69,7 +69,7 @@
 /* Compute MD5 message digest for bytes read from STREAM.  The
    resulting message digest number will be written into the 16 bytes
    beginning at RESBLOCK.  */
-void *
+int
 md5_stream (stream, resblock)
      FILE *stream;
      void *resblock;
@@ -104,6 +104,8 @@
 	  sum += n;
 	}
       while (sum < BLOCKSIZE && n != 0);
+      if (n == 0 && ferror (stream))
+        return 1;
 
       /* RFC 1321 specifies the possible length of the file up to 2^64 bits.
 	 Here we only compute the number of bytes.  Do a double word
@@ -135,13 +137,15 @@
 
   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
   *(md5_uint32 *) &buffer[sum + pad] = SWAP (len[0] << 3);
-  *(md5_uint32 *) &buffer[sum + pad + 4] = SWAP ((len[1] << 3) | (len[0] >> 29));
+  *(md5_uint32 *) &buffer[sum + pad + 4] = SWAP ((len[1] << 3)
+						 | (len[0] >> 29));
 
   /* Process last bytes.  */
   md5_process_block (buffer, sum + pad + 8, &ctx);
 
   /* Construct result in desired memory.  */
-  return md5_read_ctx (&ctx, resblock);
+  md5_read_ctx (&ctx, resblock);
+  return 0;
 }
 
 /* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The