|
|
@@ -0,0 +1,49 @@
|
|
|
+From 1af8aabccd65e11caa397c4706353075f623cd01 Mon Sep 17 00:00:00 2001
|
|
|
+From: Jo-Philipp Wich <[email protected]>
|
|
|
+Date: Mon, 8 Aug 2022 23:57:03 +0200
|
|
|
+Subject: [PATCH] meta: don't use non-POSIX formats in strptime()
|
|
|
+
|
|
|
+The current strptime() invocations in meta.c use the `%F` format which
|
|
|
+is not specified by POSIX and thus unimplemented by some libc flavors
|
|
|
+such as musl libc.
|
|
|
+
|
|
|
+Replace all occurrences of `%F` with an equivalent `%Y-%m-%d` format
|
|
|
+in order to be able to properly parse user supplied dates in such
|
|
|
+environments.
|
|
|
+
|
|
|
+Signed-off-by: Jo-Philipp Wich <[email protected]>
|
|
|
+---
|
|
|
+ src/meta.c | 8 ++++----
|
|
|
+ 1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
+
|
|
|
+diff --git a/src/meta.c b/src/meta.c
|
|
|
+index 80ace25b..257bbc9f 100644
|
|
|
+--- a/src/meta.c
|
|
|
++++ b/src/meta.c
|
|
|
+@@ -399,7 +399,7 @@ static void date_type_print(const struct expr *expr, struct output_ctx *octx)
|
|
|
+ tstamp += cur_tm->tm_gmtoff;
|
|
|
+
|
|
|
+ if ((tm = gmtime((time_t *) &tstamp)) != NULL &&
|
|
|
+- strftime(timestr, sizeof(timestr) - 1, "%F %T", tm))
|
|
|
++ strftime(timestr, sizeof(timestr) - 1, "%Y-%m-%d %T", tm))
|
|
|
+ nft_print(octx, "\"%s\"", timestr);
|
|
|
+ else
|
|
|
+ nft_print(octx, "Error converting timestamp to printed time");
|
|
|
+@@ -412,11 +412,11 @@ static bool parse_iso_date(uint64_t *tstamp, const char *sym)
|
|
|
+
|
|
|
+ memset(&tm, 0, sizeof(struct tm));
|
|
|
+
|
|
|
+- if (strptime(sym, "%F %T", &tm))
|
|
|
++ if (strptime(sym, "%Y-%m-%d %T", &tm))
|
|
|
+ goto success;
|
|
|
+- if (strptime(sym, "%F %R", &tm))
|
|
|
++ if (strptime(sym, "%Y-%m-%d %R", &tm))
|
|
|
+ goto success;
|
|
|
+- if (strptime(sym, "%F", &tm))
|
|
|
++ if (strptime(sym, "%Y-%m-%d", &tm))
|
|
|
+ goto success;
|
|
|
+
|
|
|
+ return false;
|
|
|
+--
|
|
|
+2.35.1
|
|
|
+
|