diff options
author | Jim Meyering <meyering@redhat.com> | 2008-04-18 23:42:40 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2008-04-19 00:24:55 +0200 |
commit | a85752ff4b7c18e6c4cf0c0e43da24080e2d0709 (patch) | |
tree | a0d49f6f75edb6a0badccb6314ab0cc607e41efa /src | |
parent | 0d03baa068c20f09bcba3a915fd756db7359a7fa (diff) | |
download | coreutils-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')
-rw-r--r-- | src/md5sum.c | 7 |
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. |