From 8a79f1d0a36fcd8ce8ff0800282605d9bdee55c4 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Fri, 29 May 2015 11:50:08 -0500 Subject: [PATCH] Better handling of stdout errors --- main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 8f0718e9..6b4d5b92 100644 --- a/main.c +++ b/main.c @@ -161,6 +161,7 @@ int main(int argc, char* argv[]) { int compiled = 0; int parser_flags = 0; int nfiles = 0; + int badwrite; jv program_arguments = jv_array(); if (argc) progname = argv[0]; @@ -487,8 +488,8 @@ int main(int argc, char* argv[]) { ret = 2; out: - /* XXX We really should catch ENOSPC and such errors in jv_dumpf()! */ - if (fclose(stdout)!=0) { + badwrite = ferror(stdout); + if (fclose(stdout)!=0 || badwrite) { fprintf(stderr,"Error: writing output failed: %s\n", strerror(errno)); ret = 2; }