From 18226819cdbb99a002b6a618e2f70989900e0b82 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Tue, 15 Jan 2019 12:04:31 -0600 Subject: [PATCH] ASN.1 compiler: check write errors --- lib/asn1/asn1_gen.c | 3 ++- lib/asn1/gen.c | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/asn1/asn1_gen.c b/lib/asn1/asn1_gen.c index 58532ee70..6a0244f40 100644 --- a/lib/asn1/asn1_gen.c +++ b/lib/asn1/asn1_gen.c @@ -141,7 +141,8 @@ doit(const char *fn) } printf("line: eof offset: %lu\n", (unsigned long)offset); - fclose(fout); + if (fclose(fout) == EOF) + err(1, "writes to file %s failed", fnout); fclose(f); return 0; } diff --git a/lib/asn1/gen.c b/lib/asn1/gen.c index 9e5f086db..e49134751 100644 --- a/lib/asn1/gen.c +++ b/lib/asn1/gen.c @@ -288,15 +288,16 @@ close_generate (void) { fprintf (headerfile, "#endif /* __%s_h__ */\n", headerbase); - if (headerfile) - fclose (headerfile); - if (privheaderfile) - fclose (privheaderfile); - if (templatefile) - fclose (templatefile); + if (headerfile && fclose(headerfile) == EOF) + err(1, "writes to public header file failed"); + if (privheaderfile && fclose(privheaderfile) == EOF) + err(1, "writes to private header file failed"); + if (templatefile && fclose(templatefile) == EOF) + err(1, "writes to template file failed"); if (logfile) { - fprintf (logfile, "\n"); - fclose (logfile); + fprintf(logfile, "\n"); + if (fclose(logfile) == EOF) + err(1, "writes to log file failed"); } } @@ -399,7 +400,8 @@ close_codefile(void) if (codefile == NULL) abort(); - fclose(codefile); + if (fclose(codefile) == EOF) + err(1, "writes to source code file failed"); codefile = NULL; }