diff options
author | Nicolas Williams <nico@cryptonector.com> | 2015-05-29 11:50:08 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2015-05-29 11:50:08 -0500 |
commit | 8a79f1d0a36fcd8ce8ff0800282605d9bdee55c4 (patch) | |
tree | c79fd26fa70750a70d222af1b6aa192f76907151 /main.c | |
parent | f4f5d8882d7009d11c4a5fba29e266e155b32a11 (diff) |
Better handling of stdout errors
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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; } |