]> mj.ucw.cz Git - libucw.git/commitdiff
Fix error handling dev-localtime_r-gmtime_r
authorMilan Rusek <mrusek@ucw.cz>
Mon, 20 Feb 2023 09:24:14 +0000 (10:24 +0100)
committerMilan Rusek <mrusek@ucw.cz>
Mon, 20 Feb 2023 09:35:45 +0000 (10:35 +0100)
ucw/log-file.c
ucw/xtypes-extra.c

index deb246a7cdc6c82b2707eb28446cb6ea537cb56b..48e9cbf9163a3e3612ec8fb46d026d41d654a6b2 100644 (file)
@@ -146,9 +146,8 @@ log_new_file(const char *path, uint flags)
 
   time_t now = time(NULL);
   struct tm ltm;
-  if (localtime_r(&now, &ltm) == NULL) {
-    ASSERT(0);
-  }
+  if (localtime_r(&now, &ltm) == NULL)
+    die("Cannot get local time: %m");
   do_log_switch(fs, &ltm);             // die()'s on errors
   return ls;
 }
@@ -158,9 +157,8 @@ log_switch(void)
 {
   time_t now = time(NULL);
   struct tm ltm;
-  if (localtime_r(&now, &ltm) == NULL) {
-    ASSERT(0);
-  }
+  if (localtime_r(&now, &ltm) == NULL) 
+    die("Cannot get local time: %m");
 
   int switched = 0;
   for (int i=0; i < log_streams_after; i++)
index 0ea28a9f758bb5f2d64c5097f603ab0f2ecbe6e0..39d23863edfa236b86bef36732322cefb8273eed 100644 (file)
@@ -142,17 +142,19 @@ static const char *xt_timestamp_format(void *src, u32 fmt, struct mempool *pool)
 
   u64 tmp_time_u64 = *(u64*)src;
   time_t tmp_time = (time_t) tmp_time_u64;
-  struct tm ltm;
-  if (gmtime_r(&tmp_time, &ltm) == NULL) {
-    ASSERT(0);
-  }
+
   switch (fmt) {
   case XTYPE_FMT_DEFAULT:
   case XTYPE_FMT_RAW:
     sprintf(formatted_time_buf, "%"PRIu64, tmp_time_u64);
     break;
   case XTYPE_FMT_PRETTY:
-    strftime(formatted_time_buf, FORMAT_TIME_SIZE, "%F %T", &ltm);
+    {
+      struct tm ltm;
+      if (gmtime_r(&tmp_time, &ltm) == NULL)
+       die("Cannot get gmtime: %m");
+      strftime(formatted_time_buf, FORMAT_TIME_SIZE, "%F %T", &ltm);
+    }
     break;
   default:
     ASSERT(0);