diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2005-04-11 20:08:11 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2005-04-11 20:08:11 +0000 |
commit | e972b27d0566c5c3f093763c12841718b7a5bd57 (patch) | |
tree | 5a6dd2d685baa5ed8a03bb1e069e285e03158baf /src/md5sum.c | |
parent | aba88afdced70a8fea1de4f9871244ddf425b36c (diff) | |
download | coreutils-e972b27d0566c5c3f093763c12841718b7a5bd57.tar.xz |
(digest_file, digest_check):
Don't assume that fopen does not return stdin.
Diffstat (limited to 'src/md5sum.c')
-rw-r--r-- | src/md5sum.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/md5sum.c b/src/md5sum.c index d12048a4a..400f675fa 100644 --- a/src/md5sum.c +++ b/src/md5sum.c @@ -335,8 +335,9 @@ digest_file (const char *filename, bool binary, unsigned char *bin_result, { FILE *fp; int err; + bool is_stdin = STREQ (filename, "-"); - if (STREQ (filename, "-")) + if (is_stdin) { have_read_stdin = true; fp = stdin; @@ -370,7 +371,7 @@ digest_file (const char *filename, bool binary, unsigned char *bin_result, return false; } - if (fp != stdin && fclose (fp) == EOF) + if (!is_stdin && fclose (fp) != 0) { error (0, errno, "%s", filename); return false; @@ -390,8 +391,9 @@ digest_check (const char *checkfile_name, int (*digest_stream) (FILE *, void *)) uintmax_t line_number; char *line; size_t line_chars_allocated; + bool is_stdin = STREQ (checkfile_name, "-"); - if (STREQ (checkfile_name, "-")) + if (is_stdin) { have_read_stdin = true; checkfile_name = _("standard input"); @@ -505,7 +507,7 @@ digest_check (const char *checkfile_name, int (*digest_stream) (FILE *, void *)) return false; } - if (checkfile_stream != stdin && fclose (checkfile_stream) == EOF) + if (!is_stdin && fclose (checkfile_stream) != 0) { error (0, errno, "%s", checkfile_name); return false; |