]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
time-util: move buffer size check after handling of UNIX timestamp style
authorLennart Poettering <lennart@poettering.net>
Fri, 20 Jan 2023 12:45:38 +0000 (13:45 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 20 Jan 2023 16:43:35 +0000 (17:43 +0100)
src/basic/time-util.c

index f427205f0d9ec69b9cd44b75354c6ff47b028ce5..081fa0100408872ab3bafe30859099fc5ba6ac30 100644 (file)
@@ -317,16 +317,6 @@ char *format_timestamp_style(
         assert(style >= 0);
         assert(style < _TIMESTAMP_STYLE_MAX);
 
-        utc = IN_SET(style, TIMESTAMP_UTC, TIMESTAMP_US_UTC);
-        us = IN_SET(style, TIMESTAMP_US, TIMESTAMP_US_UTC);
-
-        if (l < (size_t) (3 +                  /* week day */
-                          1 + 10 +             /* space and date */
-                          1 + 8 +              /* space and time */
-                          (us ? 1 + 6 : 0) +   /* "." and microsecond part */
-                          1 + 1 +              /* space and shortest possible zone */
-                          1))
-                return NULL; /* Not enough space even for the shortest form. */
         if (!timestamp_is_set(t))
                 return NULL; /* Timestamp is unset */
 
@@ -338,6 +328,17 @@ char *format_timestamp_style(
                 return buf;
         }
 
+        utc = IN_SET(style, TIMESTAMP_UTC, TIMESTAMP_US_UTC);
+        us = IN_SET(style, TIMESTAMP_US, TIMESTAMP_US_UTC);
+
+        if (l < (size_t) (3 +                  /* week day */
+                          1 + 10 +             /* space and date */
+                          1 + 8 +              /* space and time */
+                          (us ? 1 + 6 : 0) +   /* "." and microsecond part */
+                          1 + 1 +              /* space and shortest possible zone */
+                          1))
+                return NULL; /* Not enough space even for the shortest form. */
+
         /* Let's not format times with years > 9999 */
         if (t > USEC_TIMESTAMP_FORMATTABLE_MAX) {
                 static const char* const xxx[_TIMESTAMP_STYLE_MAX] = {