From 1ca844af98762743c319a9825835fd3f698cdb8d Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Mon, 10 Sep 2012 16:44:19 +0200 Subject: [PATCH] Check for errors when writing new drift files --- reference.c | 9 ++++++--- rtc_linux.c | 11 +++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/reference.c b/reference.c index 863f5af..ad1f5dd 100644 --- a/reference.c +++ b/reference.c @@ -314,9 +314,12 @@ update_drift_file(double freq_ppm, double skew) } /* Write the frequency and skew parameters in ppm */ - fprintf(out, "%20.4f %20.4f\n", freq_ppm, 1.0e6 * skew); - - fclose(out); + if ((fprintf(out, "%20.4f %20.4f\n", freq_ppm, 1.0e6 * skew) < 0) | + fclose(out)) { + LOG(LOGS_WARN, LOGF_Reference, "Could not write to temporary driftfile %s.tmp", + drift_file); + return; + } /* Clone the file attributes from the existing file if there is one. */ diff --git a/rtc_linux.c b/rtc_linux.c index dc79574..c1dc601 100644 --- a/rtc_linux.c +++ b/rtc_linux.c @@ -470,10 +470,13 @@ write_coefs_to_file(int valid,time_t ref_time,double offset,double rate) } /* Gain rate is written out in ppm */ - fprintf(out, "%1d %ld %.6f %.3f\n", - valid,ref_time, offset, 1.0e6 * rate); - - fclose(out); + if ((fprintf(out, "%1d %ld %.6f %.3f\n", + valid,ref_time, offset, 1.0e6 * rate) < 0) | + fclose(out)) { + LOG(LOGS_WARN, LOGF_RtcLinux, "Could not write to temporary RTC file %s.tmp", + coefs_file_name); + return RTC_ST_BADFILE; + } /* Clone the file attributes from the existing file if there is one. */