diff --git a/src/scanner.c b/src/scanner.c index 1b71e60c..4efbc0a4 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -2045,6 +2045,7 @@ int main(int argc, char *argv[]) bool strict = false; bool fail = false; int opt; + int io_err; enum { CLIENT_HEADER, SERVER_HEADER, @@ -2213,7 +2214,10 @@ int main(int argc, char *argv[]) } free_protocol(&protocol); - fclose(input); + io_err = fflush(NULL) || ferror(stdout) || ferror(input); + if (io_err) + fprintf(stderr, "I/O error during processing\n"); - return 0; + fclose(input); + return io_err; }