diff --git a/src/cksum.c b/src/cksum.c index ffd9a82d5..186ba3185 100644 --- a/src/cksum.c +++ b/src/cksum.c @@ -1317,9 +1317,6 @@ output_file (char const *file, int binary_file, void const *digest, } putchar (delim); - - if (ferror (stdout)) - write_error (); } #endif @@ -1885,6 +1882,8 @@ main (int argc, char **argv) { DIGEST_OUT (file, binary_file, bin_buffer, raw_digest, prefix_tag, digest_delim, optind != argc, length); + if (ferror (stdout)) + write_error (); } } } diff --git a/tests/misc/io-errors.sh b/tests/misc/io-errors.sh index 8b1fcef8f..a7f03a5b2 100755 --- a/tests/misc/io-errors.sh +++ b/tests/misc/io-errors.sh @@ -34,6 +34,16 @@ echo foo > foo || framework_failure_ { printf '%s' "\ cat foo +cksum -a sysv foo +cksum -a bsd foo +cksum -a crc foo +cksum -a crc32b foo +cksum -a md5 foo +cksum -a sha1 foo +cksum -a sha2 -l 256 foo +cksum -a sha3 -l 256 foo +cksum -a blake2b foo +cksum -a sm3 foo comm foo foo cut -c1- foo cut -f1- foo