summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2015-05-29 11:50:08 -0500
committerNicolas Williams <nico@cryptonector.com>2015-05-29 11:50:08 -0500
commit8a79f1d0a36fcd8ce8ff0800282605d9bdee55c4 (patch)
treec79fd26fa70750a70d222af1b6aa192f76907151 /main.c
parentf4f5d8882d7009d11c4a5fba29e266e155b32a11 (diff)
Better handling of stdout errors
Diffstat (limited to 'main.c')
-rw-r--r--main.c5
1 files 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;
}