From: Mark Andrews Date: Mon, 2 Mar 2009 02:56:13 +0000 (+0000) Subject: 2567. [bug] dst__privstruct_writefile() could miss write errors. X-Git-Tag: v9.6.1b1~22 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=c5daf291bcaecb0a0ee9fcd72ab95925f3748c0f;p=thirdparty%2Fbind9.git 2567. [bug] dst__privstruct_writefile() could miss write errors. write_public_key() could miss write errors. dnssec-dsfromkey could miss write errors. [RT #19360] --- diff --git a/CHANGES b/CHANGES index 32d8008060e..95e40f643c9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,6 @@ 2567. [bug] dst__privstruct_writefile() could miss write errors. + write_public_key() could miss write errors. + dnssec-dsfromkey could miss write errors. [RT #19360] 2564. [bug] Only take EDNS fallback steps when processing timeouts. diff --git a/bin/dnssec/dnssec-dsfromkey.c b/bin/dnssec/dnssec-dsfromkey.c index cb0288a3401..653aa3ea7a5 100644 --- a/bin/dnssec/dnssec-dsfromkey.c +++ b/bin/dnssec/dnssec-dsfromkey.c @@ -14,7 +14,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dnssec-dsfromkey.c,v 1.2.14.2 2009/02/17 23:47:15 tbox Exp $ */ +/* $Id: dnssec-dsfromkey.c,v 1.2.14.3 2009/03/02 02:54:15 marka Exp $ */ /*! \file */ @@ -387,5 +387,10 @@ main(int argc, char **argv) { isc_mem_stats(mctx, stdout); isc_mem_destroy(&mctx); - return (0); + fflush(stdout); + if (ferror(stdout)) { + fprintf(stderr, "write error\n"); + return (1); + } else + return (0); } diff --git a/lib/dns/dst_parse.c b/lib/dns/dst_parse.c index 43ac9f33eb1..ccd408c5673 100644 --- a/lib/dns/dst_parse.c +++ b/lib/dns/dst_parse.c @@ -31,7 +31,7 @@ /*% * Principal Author: Brian Wellington - * $Id: dst_parse.c,v 1.14 2008/03/31 23:47:11 tbox Exp $ + * $Id: dst_parse.c,v 1.14.120.1 2009/03/02 02:54:15 marka Exp $ */ #include @@ -525,8 +525,10 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv, fprintf(fp, "\n"); } + fflush(fp); + iret = ferror(fp) ? DST_R_WRITEERROR : ISC_R_SUCCESS; fclose(fp); - return (ISC_R_SUCCESS); + return (iret); } /*! \file */