]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
time-util: if a date is unrepresentable, honour style to generate XXX string
authorLennart Poettering <lennart@poettering.net>
Fri, 20 Jan 2023 12:44:26 +0000 (13:44 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 20 Jan 2023 16:42:55 +0000 (17:42 +0100)
src/basic/time-util.c
src/test/test-time-util.c

index 197c4855524972c716361a4e9345991f02d84476..f427205f0d9ec69b9cd44b75354c6ff47b028ce5 100644 (file)
@@ -340,9 +340,15 @@ char *format_timestamp_style(
 
         /* Let's not format times with years > 9999 */
         if (t > USEC_TIMESTAMP_FORMATTABLE_MAX) {
-                assert(l >= STRLEN("--- XXXX-XX-XX XX:XX:XX") + 1);
-                strcpy(buf, "--- XXXX-XX-XX XX:XX:XX");
-                return buf;
+                static const char* const xxx[_TIMESTAMP_STYLE_MAX] = {
+                        [TIMESTAMP_PRETTY] = "--- XXXX-XX-XX XX:XX:XX",
+                        [TIMESTAMP_US]     = "--- XXXX-XX-XX XX:XX:XX.XXXXXX",
+                        [TIMESTAMP_UTC]    = "--- XXXX-XX-XX XX:XX:XX UTC",
+                        [TIMESTAMP_US_UTC] = "--- XXXX-XX-XX XX:XX:XX.XXXXXX UTC",
+                };
+
+                assert(l >= strlen(xxx[style]) + 1);
+                return strcpy(buf, xxx[style]);
         }
 
         sec = (time_t) (t / USEC_PER_SEC); /* Round down */
index 6b546fb9f572daf185262cfbe5df80fd5bdc40c9..5c415b07b80e80a544bb988dcbcbb6920dc6ac24 100644 (file)
@@ -481,10 +481,10 @@ TEST(format_timestamp_utc) {
 
 #if SIZEOF_TIME_T == 8
         test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX, "Thu 9999-12-30 23:59:59 UTC");
-        test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX + 1, "--- XXXX-XX-XX XX:XX:XX");
+        test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX + 1, "--- XXXX-XX-XX XX:XX:XX UTC");
 #elif SIZEOF_TIME_T == 4
         test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX, "Tue 2038-01-19 03:14:07 UTC");
-        test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX + 1, "--- XXXX-XX-XX XX:XX:XX");
+        test_format_timestamp_utc_one(USEC_TIMESTAMP_FORMATTABLE_MAX + 1, "--- XXXX-XX-XX XX:XX:XX UTC");
 #endif
 
         test_format_timestamp_utc_one(USEC_INFINITY, NULL);