summaryrefslogtreecommitdiff
path: root/src/md5sum.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2008-04-18 23:42:40 +0200
committerJim Meyering <meyering@redhat.com>2008-04-19 00:24:55 +0200
commita85752ff4b7c18e6c4cf0c0e43da24080e2d0709 (patch)
treea0d49f6f75edb6a0badccb6314ab0cc607e41efa /src/md5sum.c
parent0d03baa068c20f09bcba3a915fd756db7359a7fa (diff)
downloadcoreutils-a85752ff4b7c18e6c4cf0c0e43da24080e2d0709.tar.xz
md5sum -c: ignore a line with a NUL byte among checksum hex digits
* src/md5sum.c (hex_digits): Require that all "digest_hex_bytes" be hexadecimal digits, not just those before the first NUL byte. This bug dates back to the original version: 3763a4f24eb21be40674d13ff7b04e078f473e85 * tests/misc/md5sum (nul-in-cksum): Test for the above. * NEWS [Bug fixes]: Mention this. Prompted by a report from Flóki Pálsson in http://bugzilla.redhat.com/439531
Diffstat (limited to 'src/md5sum.c')
-rw-r--r--src/md5sum.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/md5sum.c b/src/md5sum.c
index ba762d149..f83a7b115 100644
--- a/src/md5sum.c
+++ b/src/md5sum.c
@@ -343,16 +343,19 @@ split_3 (char *s, size_t s_len,
return true;
}
+/* Return true if S is a NUL-terminated string of DIGEST_HEX_BYTES hex digits.
+ Otherwise, return false. */
static bool
hex_digits (unsigned char const *s)
{
- while (*s)
+ unsigned int i;
+ for (i = 0; i < digest_hex_bytes; i++)
{
if (!isxdigit (*s))
return false;
++s;
}
- return true;
+ return *s == '\0';
}
/* An interface to the function, DIGEST_STREAM.