Hi, GNU md5sum errors out when passed an empty file via -c. Add a test and make bb md5sum do the same.
- Lauri -- http://www.fastmail.com - Choose from over 50 domains or use your own
From f5a686ea2ac56d91f6cecf16b234b43608a51ec7 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen <cur...@operamail.com> Date: Sat, 25 Jun 2016 20:41:03 +0300 Subject: [PATCH 1/2] md5sum: Add a test for -c with empty file Signed-off-by: Lauri Kasanen <cur...@operamail.com> --- testsuite/md5sum/md5sum-c-empty | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 testsuite/md5sum/md5sum-c-empty diff --git a/testsuite/md5sum/md5sum-c-empty b/testsuite/md5sum/md5sum-c-empty new file mode 100644 index 0000000..3a3ed72 --- /dev/null +++ b/testsuite/md5sum/md5sum-c-empty @@ -0,0 +1,5 @@ +# An empty file passed to -c must error out. + +touch empty +busybox md5sum -c empty && exit 1 +exit 0 -- 2.6.2
From 7bc302f6d05290803702037389cce39215b7f199 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen <cur...@operamail.com> Date: Sat, 25 Jun 2016 20:46:13 +0300 Subject: [PATCH 2/2] md5_sha1_sum: error out on -c empty file This is needed to match GNU md5sum behavior. Signed-off-by: Lauri Kasanen <cur...@operamail.com> --- coreutils/md5_sha1_sum.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c index 1a5342e..89af9a3 100644 --- a/coreutils/md5_sha1_sum.c +++ b/coreutils/md5_sha1_sum.c @@ -200,6 +200,7 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv) char *line; int count_total = 0; int count_failed = 0; + uint8_t found = 0; pre_computed_stream = xfopen_stdin(*argv); @@ -224,6 +225,7 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv) } *filename_ptr = '\0'; filename_ptr += 2; + found = 1; hash_value = hash_file(filename_ptr); @@ -244,6 +246,13 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv) bb_error_msg("WARNING: %d of %d computed checksums did NOT match", count_failed, count_total); } + if (!found) { + return_value = EXIT_FAILURE; + + if (!(flags & FLAG_SILENT)) { + bb_error_msg("WARNING: no checksum lines found"); + } + } fclose_if_not_stdin(pre_computed_stream); } else { uint8_t *hash_value = hash_file(*argv); -- 2.6.2
_______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox