diff --git a/src/scanner.c b/src/scanner.c index cd5f7fea..29b62eb3 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -2062,6 +2062,7 @@ int main(int argc, char *argv[]) bool strict = false; bool fail = false; int opt; + int io_err; enum { CLIENT_HEADER, SERVER_HEADER, @@ -2230,7 +2231,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; }