mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
nftables: fix parsing date expressions
Musl libc does not support the non-POSIX "%F" format for strptime() so replace all occurrences of it with an equivalent "%Y-%m-%d" format. Fixes: #10419 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
b5ec04f81a
commit
e6e4f97999
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=nftables
|
||||
PKG_VERSION:=1.0.4
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://netfilter.org/projects/$(PKG_NAME)/files
|
||||
|
@ -0,0 +1,49 @@
|
||||
From 1af8aabccd65e11caa397c4706353075f623cd01 Mon Sep 17 00:00:00 2001
|
||||
From: Jo-Philipp Wich <jo@mein.io>
|
||||
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 <jo@mein.io>
|
||||
---
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user