]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
hwclock: verify writing to streams was successful
authorSami Kerola <kerolasa@iki.fi>
Wed, 4 Apr 2012 17:59:35 +0000 (19:59 +0200)
committerSami Kerola <kerolasa@iki.fi>
Wed, 4 Apr 2012 17:59:35 +0000 (19:59 +0200)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
hwclock/hwclock.c

index 4da2dca791ac8413b46c06cd3ee1e88a57e7bcd0..3cedd1de33ff39c4aa7f1953c233aaac63c63473 100644 (file)
@@ -72,6 +72,7 @@
 
 #include "c.h"
 #include "clock.h"
+#include "closestream.h"
 #include "nls.h"
 #include "pathnames.h"
 #include "strutils.h"
@@ -164,7 +165,8 @@ static void write_date_to_file(struct tm *tm)
        if ((fp = fopen(_PATH_LASTDATE, "w"))) {
                fprintf(fp, "%02d.%02d.%04d\n", tm->tm_mday, tm->tm_mon + 1,
                        tm->tm_year + 1900);
-               fclose(fp);
+               if (close_stream(fp) != 0)
+                       warn(_("cannot write %s"), _PATH_LASTDATE);
        } else
                warn(_("cannot write %s"), _PATH_LASTDATE);
 }
@@ -1026,7 +1028,7 @@ static void save_adjtime(const struct adjtime adjtime, const bool testing)
                                             adj_file_name);
                                        err = 1;
                                }
-                               if (fclose(adjfile) < 0) {
+                               if (close_stream(adjfile) != 0) {
                                        warn(_
                                             ("Could not update file with the clock adjustment "
                                              "parameters (%s) in it"),
@@ -1521,6 +1523,7 @@ int main(int argc, char **argv)
 #endif
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
+       atexit(close_stdout);
 
        /* Set option defaults */
        show = set = systohc = hctosys = systz = adjust = noadjfile = predict =