From: Jo-Philipp Wich Date: Mon, 8 Aug 2022 22:05:02 +0000 (+0200) Subject: nftables: fix parsing date expressions X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=eada8925776aafa3ec47d66fb89bf7eae730edf7;p=openwrt%2Fstaging%2Fdangole.git 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 --- diff --git a/package/network/utils/nftables/Makefile b/package/network/utils/nftables/Makefile index 88d7aebefc..850355df8d 100644 --- a/package/network/utils/nftables/Makefile +++ b/package/network/utils/nftables/Makefile @@ -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 diff --git a/package/network/utils/nftables/patches/0001-meta-don-t-use-non-POSIX-formats-in-strptime.patch b/package/network/utils/nftables/patches/0001-meta-don-t-use-non-POSIX-formats-in-strptime.patch new file mode 100644 index 0000000000..a9d0ee5451 --- /dev/null +++ b/package/network/utils/nftables/patches/0001-meta-don-t-use-non-POSIX-formats-in-strptime.patch @@ -0,0 +1,49 @@ +From 1af8aabccd65e11caa397c4706353075f623cd01 Mon Sep 17 00:00:00 2001 +From: Jo-Philipp Wich +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 +--- + 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 + diff --git a/target/linux/ramips/mt7621/config-5.10 b/target/linux/ramips/mt7621/config-5.10 index 182da755cf..3c668f9ac5 100644 --- a/target/linux/ramips/mt7621/config-5.10 +++ b/target/linux/ramips/mt7621/config-5.10 @@ -25,7 +25,6 @@ CONFIG_CPU_HAS_PREFETCH=y CONFIG_CPU_HAS_RIXI=y CONFIG_CPU_HAS_SYNC=y CONFIG_CPU_IDLE=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_TEO=y CONFIG_CPU_MIPS32=y # CONFIG_CPU_MIPS32_R1 is not set @@ -41,7 +40,6 @@ CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y CONFIG_CPU_SUPPORTS_HIGHMEM=y CONFIG_CPU_SUPPORTS_MSA=y CONFIG_CRC16=y -CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_BLAKE2S=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_HASH_INFO=y @@ -108,7 +106,6 @@ CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_MIPS_CPU=y CONFIG_IRQ_WORK=y -# CONFIG_KERNEL_ZSTD is not set CONFIG_LED_TRIGGER_PHY=y CONFIG_LIBFDT=y CONFIG_LOCK_DEBUGGING_SUPPORT=y