[openwrt/openwrt] nftables: fix parsing date expressions

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 8 15:20:22 PDT 2022


jow pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/eada8925776aafa3ec47d66fb89bf7eae730edf7

commit eada8925776aafa3ec47d66fb89bf7eae730edf7
Author: Jo-Philipp Wich <jo at mein.io>
AuthorDate: Tue Aug 9 00:05:02 2022 +0200

    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 at mein.io>
---
 package/network/utils/nftables/Makefile            |  2 +-
 ...a-don-t-use-non-POSIX-formats-in-strptime.patch | 49 ++++++++++++++++++++++
 target/linux/ramips/mt7621/config-5.10             |  3 --
 3 files changed, 50 insertions(+), 4 deletions(-)

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 <jo at 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 at 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
+
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




More information about the lede-commits mailing list