diff options
author | Eric Andersen | 2000-12-20 23:19:42 +0000 |
---|---|---|
committer | Eric Andersen | 2000-12-20 23:19:42 +0000 |
commit | e111d69ca27a39d0a1eaf02617912092bc929c30 (patch) | |
tree | 9c65bcffd99ee9462f19e19fdb6a7ccff1370446 /coreutils/md5sum.c | |
parent | 70da6a66d2d4be1b93b80616a496985ec347447d (diff) | |
download | busybox-e111d69ca27a39d0a1eaf02617912092bc929c30.zip busybox-e111d69ca27a39d0a1eaf02617912092bc929c30.tar.gz |
Turns out, md5sum was broken anyways. It uses backwards TRUE/FALSE
and wasnever updated when TRUE and FALSE were fixed. So kludge it
by doing an #undef TRUE, then define it backwards...
Diffstat (limited to 'coreutils/md5sum.c')
-rw-r--r-- | coreutils/md5sum.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/coreutils/md5sum.c b/coreutils/md5sum.c index 2c08b29..3458f2e 100644 --- a/coreutils/md5sum.c +++ b/coreutils/md5sum.c @@ -26,6 +26,12 @@ #include <ctype.h> #include <getopt.h> +/* For some silly reason, this file uses backwards TRUE and FALSE conventions */ +#undef TRUE +#undef FALSE +#define FALSE ((int) 1) +#define TRUE ((int) 0) + //---------------------------------------------------------------------------- //--------md5.c //---------------------------------------------------------------------------- @@ -699,7 +705,7 @@ static int md5_check(const char *checkfile_name) fgets(line, BUFSIZ-1, checkfile_stream); line_length = strlen(line); - if (line_length <= 0) + if (line_length <= 0 || line==NULL) break; /* Ignore comment lines, which begin with a '#' character. */ @@ -757,9 +763,6 @@ static int md5_check(const char *checkfile_name) while (!feof(checkfile_stream) && !ferror(checkfile_stream)); - if (line) - free(line); - if (ferror(checkfile_stream)) { error_msg("%s: read error\n", checkfile_name); /* */ return FALSE; @@ -852,31 +855,26 @@ int md5sum_main(int argc, } if (file_type_specified && do_check) { - error_msg("the -b and -t options are meaningless when verifying checksums\n"); - return EXIT_FAILURE; + error_msg_and_die("the -b and -t options are meaningless when verifying checksums\n"); } if (n_strings > 0 && do_check) { - error_msg("the -g and -c options are mutually exclusive\n"); - return EXIT_FAILURE; + error_msg_and_die("the -g and -c options are mutually exclusive\n"); } if (status_only && !do_check) { - error_msg("the -s option is meaningful only when verifying checksums\n"); - return EXIT_FAILURE; + error_msg_and_die("the -s option is meaningful only when verifying checksums\n"); } if (warn && !do_check) { - error_msg("the -w option is meaningful only when verifying checksums\n"); - return EXIT_FAILURE; + error_msg_and_die("the -w option is meaningful only when verifying checksums\n"); } if (n_strings > 0) { size_t i; if (optind < argc) { - error_msg("no files may be specified when using -g\n"); - return EXIT_FAILURE; + error_msg_and_die("no files may be specified when using -g\n"); } for (i = 0; i < n_strings; ++i) { size_t cnt; @@ -942,13 +940,11 @@ int md5sum_main(int argc, } if (fclose (stdout) == EOF) { - error_msg("write error\n"); - return EXIT_FAILURE; + error_msg_and_die("write error\n"); } if (have_read_stdin && fclose (stdin) == EOF) { - error_msg("standard input\n"); - return EXIT_FAILURE; + error_msg_and_die("standard input\n"); } if (err == 0) |