public inbox for dev@dpdk.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Yipeng Wang <yipeng1.wang@intel.com>,
	Sameh Gobriel <sameh.gobriel@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Subject: [PATCH v14 02/17] hash: reject names that exceed maximum length
Date: Wed, 28 Jan 2026 17:41:05 -0800	[thread overview]
Message-ID: <20260129014313.939831-3-stephen@networkplumber.org> (raw)
In-Reply-To: <20260129014313.939831-1-stephen@networkplumber.org>

Add missing length validation to rte_hash_create() and
rte_fbk_hash_create() that returns ENAMETOOLONG when the name
exceeds RTE_HASH_NAMESIZE or RTE_FBK_HASH_NAMESIZE respectively.
Previously these functions would silently truncate long names.

Also add truncation warnings for internally-generated ring names,
improve error messages to include the actual error code, and add
unit tests for the new validation.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_hash.c                   | 21 +++++++++++++
 doc/guides/rel_notes/release_26_03.rst |  3 ++
 lib/hash/rte_cuckoo_hash.c             | 41 ++++++++++++++++++--------
 lib/hash/rte_fbk_hash.c                | 12 ++++++--
 lib/hash/rte_fbk_hash.h                |  1 +
 5 files changed, 63 insertions(+), 15 deletions(-)

diff --git a/app/test/test_hash.c b/app/test/test_hash.c
index a70e2620c0..3fb3d96d05 100644
--- a/app/test/test_hash.c
+++ b/app/test/test_hash.c
@@ -1120,6 +1120,14 @@ fbk_hash_unit_test(void)
 		.socket_id = RTE_MAX_NUMA_NODES + 1, /* invalid socket */
 	};
 
+	/* try and create hash with an excessively long name */
+	struct rte_fbk_hash_params invalid_params_long_name = {
+		.name = "four_byte_key_hash_name_length_32",
+		.entries = 4,
+		.entries_per_bucket = 2,
+		.socket_id = 0,
+	};
+
 	/* try to create two hashes with identical names
 	 * in this case, trying to create a second one will not
 	 * fail but will simply return pointer to the existing
@@ -1201,6 +1209,9 @@ fbk_hash_unit_test(void)
 	handle = rte_fbk_hash_create(&invalid_params_7);
 	RETURN_IF_ERROR_FBK(handle != NULL, "fbk hash creation should have failed");
 
+	handle = rte_fbk_hash_create(&invalid_params_long_name);
+	RETURN_IF_ERROR_FBK(handle != NULL, "fbk hash creation should have failed");
+
 	if (rte_eal_has_hugepages()) {
 		handle = rte_fbk_hash_create(&invalid_params_8);
 		RETURN_IF_ERROR_FBK(handle != NULL,
@@ -1439,6 +1450,16 @@ static int test_hash_creation_with_bad_parameters(void)
 		return -1;
 	}
 
+	memcpy(&params, &ut_params, sizeof(params));
+	params.name = "hash_creation_with_too_long_name";
+	params.socket_id = SOCKET_ID_ANY;
+	handle = rte_hash_create(&params);
+	if (handle != NULL) {
+		rte_hash_free(handle);
+		printf("Impossible creating hash successfully with long name\n");
+		return -1;
+	}
+
 	/* test with same name should fail */
 	memcpy(&params, &ut_params, sizeof(params));
 	params.name = "same_name";
diff --git a/doc/guides/rel_notes/release_26_03.rst b/doc/guides/rel_notes/release_26_03.rst
index 13f753abe8..b966ce7b49 100644
--- a/doc/guides/rel_notes/release_26_03.rst
+++ b/doc/guides/rel_notes/release_26_03.rst
@@ -84,12 +84,15 @@ API Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+
 * **Added additional length checks for name parameter lengths.**
 
   Several library functions now have additional name length checks
   instead of silently truncating.
 
   * lpm: name must be less than RTE_LPM_NAMESIZE.
+  * hash: name parameter must be less than RTE_HASH_NAMESIZE.
+
 
 
 ABI Changes
diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c
index 2c92c51624..f9c4a0e302 100644
--- a/lib/hash/rte_cuckoo_hash.c
+++ b/lib/hash/rte_cuckoo_hash.c
@@ -170,7 +170,6 @@ rte_hash_create(const struct rte_hash_parameters *params)
 	void *buckets = NULL;
 	void *buckets_ext = NULL;
 	char ring_name[RTE_RING_NAMESIZE];
-	char ext_ring_name[RTE_RING_NAMESIZE];
 	unsigned num_key_slots;
 	unsigned int hw_trans_mem_support = 0, use_local_cache = 0;
 	unsigned int ext_table_support = 0;
@@ -222,6 +221,13 @@ rte_hash_create(const struct rte_hash_parameters *params)
 		return NULL;
 	}
 
+	if (strlen(params->name) >= RTE_HASH_NAMESIZE) {
+		rte_errno = ENAMETOOLONG;
+		HASH_LOG(ERR, "%s() name '%s' exceeds maximum length %d",
+			 __func__, params->name, RTE_HASH_NAMESIZE);
+		return NULL;
+	}
+
 	/* Validate correct usage of extra options */
 	if ((params->extra_flag & RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY) &&
 	    (params->extra_flag & RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF)) {
@@ -272,12 +278,16 @@ rte_hash_create(const struct rte_hash_parameters *params)
 	else
 		num_key_slots = params->entries + 1;
 
-	snprintf(ring_name, sizeof(ring_name), "HT_%s", params->name);
+	/* Ring name may get truncated, conflict detected on ring creation */
+	if (snprintf(ring_name, sizeof(ring_name), "HT_%s", params->name)
+	    >= (int)sizeof(ring_name))
+		HASH_LOG(NOTICE, "ring name truncated to '%s'", ring_name);
+
 	/* Create ring (Dummy slot index is not enqueued) */
 	r = rte_ring_create_elem(ring_name, sizeof(uint32_t),
 			rte_align32pow2(num_key_slots), params->socket_id, 0);
 	if (r == NULL) {
-		HASH_LOG(ERR, "memory allocation failed");
+		HASH_LOG(ERR, "ring creation failed: %s", rte_strerror(rte_errno));
 		goto err;
 	}
 
@@ -286,20 +296,25 @@ rte_hash_create(const struct rte_hash_parameters *params)
 
 	/* Create ring for extendable buckets. */
 	if (ext_table_support) {
-		snprintf(ext_ring_name, sizeof(ext_ring_name), "HT_EXT_%s",
-								params->name);
+		char ext_ring_name[RTE_RING_NAMESIZE];
+
+		if (snprintf(ext_ring_name, sizeof(ext_ring_name),
+			     "HT_EXT_%s", params->name) >= (int)sizeof(ext_ring_name))
+			HASH_LOG(NOTICE, "external ring name truncated to '%s'", ext_ring_name);
+
 		r_ext = rte_ring_create_elem(ext_ring_name, sizeof(uint32_t),
 				rte_align32pow2(num_buckets + 1),
 				params->socket_id, 0);
-
 		if (r_ext == NULL) {
-			HASH_LOG(ERR, "ext buckets memory allocation "
-								"failed");
+			HASH_LOG(ERR, "ext buckets ring create failed: %s",
+				 rte_strerror(rte_errno));
 			goto err;
 		}
 	}
 
-	snprintf(hash_name, sizeof(hash_name), "HT_%s", params->name);
+	if (snprintf(hash_name, sizeof(hash_name), "HT_%s", params->name)
+	    >= (int)sizeof(hash_name))
+		HASH_LOG(NOTICE, "%s() hash name truncated to '%s'", __func__, hash_name);
 
 	rte_mcfg_tailq_write_lock();
 
@@ -1606,8 +1621,9 @@ rte_hash_rcu_qsbr_add(struct rte_hash *h, struct rte_hash_rcu_config *cfg)
 		/* No other things to do. */
 	} else if (cfg->mode == RTE_HASH_QSBR_MODE_DQ) {
 		/* Init QSBR defer queue. */
-		snprintf(rcu_dq_name, sizeof(rcu_dq_name),
-					"HASH_RCU_%s", h->name);
+		if (snprintf(rcu_dq_name, sizeof(rcu_dq_name),
+			     "HASH_RCU_%s", h->name) >= (int)sizeof(rcu_dq_name))
+			HASH_LOG(NOTICE, "HASH defer queue name truncated to: %s", rcu_dq_name);
 		params.name = rcu_dq_name;
 		params.size = cfg->dq_size;
 		if (params.size == 0)
@@ -1623,7 +1639,8 @@ rte_hash_rcu_qsbr_add(struct rte_hash *h, struct rte_hash_rcu_config *cfg)
 		h->dq = rte_rcu_qsbr_dq_create(&params);
 		if (h->dq == NULL) {
 			rte_free(hash_rcu_cfg);
-			HASH_LOG(ERR, "HASH defer queue creation failed");
+			HASH_LOG(ERR, "HASH defer queue creation failed: %s",
+				 rte_strerror(rte_errno));
 			return 1;
 		}
 	} else {
diff --git a/lib/hash/rte_fbk_hash.c b/lib/hash/rte_fbk_hash.c
index 38b15a14d1..45d4a13427 100644
--- a/lib/hash/rte_fbk_hash.c
+++ b/lib/hash/rte_fbk_hash.c
@@ -5,6 +5,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <errno.h>
 #include <sys/queue.h>
 
@@ -83,7 +84,7 @@ rte_fbk_hash_create(const struct rte_fbk_hash_params *params)
 {
 	struct rte_fbk_hash_table *ht = NULL;
 	struct rte_tailq_entry *te;
-	char hash_name[RTE_FBK_HASH_NAMESIZE];
+	char hash_name[RTE_FBK_HASH_NAMESIZE + sizeof("FBK_")];
 	const uint32_t mem_size =
 			sizeof(*ht) + (sizeof(ht->t[0]) * params->entries);
 	uint32_t i;
@@ -96,6 +97,7 @@ rte_fbk_hash_create(const struct rte_fbk_hash_params *params)
 	/* Error checking of parameters. */
 	if ((!rte_is_power_of_2(params->entries)) ||
 			(!rte_is_power_of_2(params->entries_per_bucket)) ||
+			(params->name == NULL) ||
 			(params->entries == 0) ||
 			(params->entries_per_bucket == 0) ||
 			(params->entries_per_bucket > params->entries) ||
@@ -105,6 +107,11 @@ rte_fbk_hash_create(const struct rte_fbk_hash_params *params)
 		return NULL;
 	}
 
+	if (strlen(params->name) >= RTE_FBK_HASH_NAMESIZE) {
+		rte_errno = ENAMETOOLONG;
+		return NULL;
+	}
+
 	snprintf(hash_name, sizeof(hash_name), "FBK_%s", params->name);
 
 	rte_mcfg_tailq_write_lock();
@@ -128,8 +135,7 @@ rte_fbk_hash_create(const struct rte_fbk_hash_params *params)
 	}
 
 	/* Allocate memory for table. */
-	ht = rte_zmalloc_socket(hash_name, mem_size,
-			0, params->socket_id);
+	ht = rte_zmalloc_socket(hash_name, mem_size, 0, params->socket_id);
 	if (ht == NULL) {
 		HASH_LOG(ERR, "Failed to allocate fbk hash table");
 		rte_free(te);
diff --git a/lib/hash/rte_fbk_hash.h b/lib/hash/rte_fbk_hash.h
index 4aebffd8bf..6b70cfaa0b 100644
--- a/lib/hash/rte_fbk_hash.h
+++ b/lib/hash/rte_fbk_hash.h
@@ -348,6 +348,7 @@ void rte_fbk_hash_free(struct rte_fbk_hash_table *ht);
  *    - ENOSPC - the maximum number of memzones has already been allocated
  *    - EEXIST - a memzone with the same name already exists
  *    - ENOMEM - no appropriate memory area found in which to create memzone
+ *    - ENAMETOOLONG - name in parameters exceeds RTE_FBK_HASH_NAMESIZE
  */
 struct rte_fbk_hash_table *
 rte_fbk_hash_create(const struct rte_fbk_hash_params *params)
-- 
2.51.0


  parent reply	other threads:[~2026-01-29  1:43 UTC|newest]

Thread overview: 261+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-02 17:24 [RFC 0/8] first steps in fixing buffer overflow Stephen Hemminger
2025-12-02 17:24 ` [RFC 1/8] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-02 17:24 ` [RFC 2/8] hash: fix possible ring name overflow Stephen Hemminger
2025-12-02 17:24 ` [RFC 3/8] eal: warn if thread name is truncated Stephen Hemminger
2025-12-02 17:24 ` [RFC 4/8] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-02 17:24 ` [RFC 5/8] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-02 17:24 ` [RFC 6/8] efd: avoid overflowing ring name Stephen Hemminger
2025-12-02 17:24 ` [RFC 7/8] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-02 17:24 ` [RFC 8/8] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-05  2:28 ` [RFC v2 00/14] lib: check for string overflow Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 01/14] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 02/14] test: avoid long hash names Stephen Hemminger
2025-12-05  8:29     ` Bruce Richardson
2025-12-05 17:00       ` Stephen Hemminger
2025-12-05 18:19         ` Bruce Richardson
2025-12-05  2:28   ` [RFC v2 03/14] lpm: restrict name size Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 04/14] hash: avoid possible ring name overflow Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 05/14] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 06/14] eal: warn if thread name is truncated Stephen Hemminger
2025-12-05  8:32     ` Bruce Richardson
2025-12-05  2:28   ` [RFC v2 07/14] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 08/14] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-05  8:34     ` Bruce Richardson
2025-12-05  2:28   ` [RFC v2 09/14] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 10/14] efd: avoid overflowing ring name Stephen Hemminger
2025-12-05  8:37     ` Bruce Richardson
2025-12-05  2:28   ` [RFC v2 11/14] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 12/14] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-05  8:46     ` Bruce Richardson
2025-12-05  2:28   ` [RFC v2 13/14] eal: check for hugefile path overflow Stephen Hemminger
2025-12-05  2:28   ` [RFC v2 14/14] lib: enable format overflow warnings Stephen Hemminger
2025-12-05 20:11   ` [PATCH v3 00/16] lib: find and fix possible string overflows Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 01/16] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 02/16] lpm: restrict name size Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 03/16] hash: add checks for hash name length Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 04/16] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 05/16] latencystats: add check for string overflow Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 06/16] efd: handle possible name truncation Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 07/16] eal: warn if thread name is truncated Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 08/16] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 09/16] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 10/16] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-08  8:58       ` Bruce Richardson
2025-12-08 19:14         ` Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 11/16] eal: check for hugefile path overflow Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 12/16] eal: check tailq length Stephen Hemminger
2025-12-08  8:58       ` Bruce Richardson
2025-12-05 20:11     ` [PATCH v3 13/16] eal: handle long shared library path Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 14/16] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 15/16] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-05 20:11     ` [PATCH v3 16/16] lib: enable format overflow warnings Stephen Hemminger
2025-12-06 18:43   ` [PATCH v4 00/16] lib: find and fix possible string overflows Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 01/16] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 02/16] lpm: restrict name size Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 03/16] hash: add checks for hash name length Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 04/16] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 05/16] latencystats: add check for string overflow Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 06/16] efd: handle possible name truncation Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 07/16] eal: warn if thread name is truncated Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 08/16] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 09/16] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 10/16] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 11/16] eal: check for hugefile path overflow Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 12/16] eal: check tailq length Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 13/16] eal: handle long shared library path Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 14/16] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 15/16] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-06 18:43     ` [PATCH v4 16/16] lib: enable format overflow warnings Stephen Hemminger
2025-12-07 19:11   ` [PATCH v5 00/17] lib: fix format overflows Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 01/17] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 02/17] lpm: restrict name size Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 03/17] hash: add checks for hash name length Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 04/17] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 05/17] latencystats: add check for string overflow Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 06/17] telemetry: avoid possible " Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 07/17] efd: handle possible name truncation Stephen Hemminger
2025-12-07 19:11     ` [PATCH v5 08/17] eal: warn if thread name is truncated Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 09/17] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 10/17] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 11/17] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 12/17] eal: check for hugefile path overflow Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 13/17] eal: check tailq length Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 14/17] eal: handle long shared library path Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 15/17] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 16/17] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-07 19:12     ` [PATCH v5 17/17] lib: enable format overflow warnings Stephen Hemminger
2025-12-16 23:20     ` [PATCH v5 00/17] lib: fix format overflows Patrick Robb
2025-12-17  6:57       ` Stephen Hemminger
2025-12-23 18:12   ` [PATCH v6 00/18] " Stephen Hemminger
2025-12-23 18:12     ` [PATCH v6 01/18] lpm: restrict name size Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 02/18] hash: add checks for hash name length Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 04/18] latencystats: add check for string overflow Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 05/18] telemetry: avoid possible " Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 06/18] efd: handle possible name truncation Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 08/18] eal: warn if thread name is truncated Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 12/18] eal: check for hugefile path overflow Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 13/18] eal: check tailq length Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 14/18] eal: handle long shared library path Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2025-12-23 18:13     ` [PATCH v6 18/18] lib: enable format overflow warnings Stephen Hemminger
2025-12-24 22:11 ` [PATCH v7 00/18] lib: fix format overflows Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 01/18] lpm: restrict name size Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 02/18] hash: add checks for hash name length Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 04/18] latencystats: add check for string overflow Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 05/18] telemetry: check for path overflow Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 06/18] efd: handle possible name truncation Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 08/18] eal: warn if thread name is truncated Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 12/18] eal: check for hugefile path overflow Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 13/18] eal: check tailq length Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 14/18] eal: handle long shared library path Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2025-12-24 22:11   ` [PATCH v7 18/18] lib: enable format overflow warnings Stephen Hemminger
2025-12-28 18:56 ` [PATCH v8 00/18] fix format overflows in libraries Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 01/18] lpm: restrict name size Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 02/18] hash: add checks for hash name length Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 04/18] latencystats: add check for string overflow Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 05/18] telemetry: check for path overflow Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 06/18] efd: handle possible name truncation Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 08/18] eal: warn if thread name is truncated Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 12/18] eal: check for hugefile path overflow Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 13/18] eal: check tailq length Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 14/18] eal: handle long shared library path Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2025-12-28 18:56   ` [PATCH v8 18/18] lib: enable format overflow warnings Stephen Hemminger
2025-12-29 19:37 ` [PATCH v9 00/18] fix format overflow in libraries Stephen Hemminger
2025-12-29 19:37   ` [PATCH v9 01/18] lpm: restrict name size Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 02/18] hash: add checks for hash name length Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 04/18] latencystats: add check for string overflow Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 05/18] telemetry: check for path overflow Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 06/18] efd: handle possible name truncation Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2025-12-30 15:26     ` Konstantin Ananyev
2025-12-29 19:38   ` [PATCH v9 08/18] eal: warn if thread name is truncated Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 12/18] eal: check for hugefile path overflow Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 13/18] eal: check tailq length Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 14/18] eal: handle long shared library path Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2025-12-29 19:38   ` [PATCH v9 18/18] lib: enable format overflow warnings Stephen Hemminger
2026-01-13 20:21 ` [PATCH v10 00/18] fix format overflow warnings in libraries Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 01/18] lpm: restrict name size Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 02/18] hash: add checks for hash name length Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 04/18] latencystats: add check for string overflow Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 05/18] telemetry: check for path overflow Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 06/18] efd: handle possible name truncation Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 08/18] eal: warn if thread name is truncated Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 12/18] eal: check for hugefile path overflow Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 13/18] eal: check tailq length Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 14/18] eal: handle long shared library path Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2026-01-13 20:21   ` [PATCH v10 18/18] lib: enable format overflow warnings Stephen Hemminger
2026-01-23  4:27 ` [PATCH v11 00/18] lib: improve string overflow safety Stephen Hemminger
2026-01-23  4:27   ` [PATCH v11 01/18] lpm: restrict name size Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 02/18] hash: add checks for hash name length Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 03/18] graph: avoid overflowing comment buffer Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 04/18] latencystats: add check for string overflow Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 05/18] telemetry: check for path overflow Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 06/18] efd: handle possible name truncation Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 07/18] eal: use C library to parse filesystem table Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 08/18] eal: warn if thread name is truncated Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 09/18] eal: avoid format overflow when handling addresses Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 10/18] eal: add check for sysfs path overflow Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 11/18] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 12/18] eal: check for hugefile path overflow Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 13/18] eal: check tailq length Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 14/18] eal: handle long shared library path Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 15/18] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 16/18] vhost: check for overflow in xstat name Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 17/18] cfgfile: add length checks and increase line buffer Stephen Hemminger
2026-01-23  4:28   ` [PATCH v11 18/18] lib: enable format overflow warnings Stephen Hemminger
2026-01-26 23:22 ` [PATCH v12 00/17] lib: improve string overflow safety Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 01/17] lpm: restrict name size Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 02/17] hash: add checks for hash name length Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 03/17] graph: avoid overflowing comment buffer Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 04/17] latencystats: add check for string overflow Stephen Hemminger
2026-01-27  8:52     ` Bruce Richardson
2026-01-26 23:22   ` [PATCH v12 05/17] telemetry: check for path overflow Stephen Hemminger
2026-01-27  8:51     ` Bruce Richardson
2026-01-26 23:22   ` [PATCH v12 06/17] efd: handle possible name truncation Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 07/17] eal: use C library to parse filesystem table Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 08/17] eal: warn if thread name is truncated Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 09/17] eal: avoid format overflow when handling addresses Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 10/17] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 11/17] eal: check for hugefile path overflow Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 12/17] eal: check tailq length Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 13/17] eal: handle long shared library path Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 14/17] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 15/17] vhost: check for overflow in xstat name Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 16/17] cfgfile: add length checks and increase line buffer Stephen Hemminger
2026-01-26 23:22   ` [PATCH v12 17/17] lib: enable format overflow warnings Stephen Hemminger
2026-01-27 16:30 ` [PATCH v13 00/17] lib: improve string overflow safety Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 01/17] lpm: reject names that exceed maximum length Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 02/17] hash: " Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 03/17] graph: avoid overflowing comment buffer Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 04/17] latencystats: add check for string overflow Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 05/17] telemetry: check for path overflow Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 06/17] efd: handle possible name truncation Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 07/17] eal: use C library to parse filesystem table Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 08/17] eal: warn if thread name is truncated Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 09/17] eal: avoid format overflow when handling addresses Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 10/17] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 11/17] eal: check for hugefile path overflow Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 12/17] eal: check tailq length Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 13/17] eal: handle long shared library path Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 14/17] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 15/17] vhost: check for overflow in xstat name Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 16/17] cfgfile: add length checks and increase line buffer Stephen Hemminger
2026-01-27 16:30   ` [PATCH v13 17/17] lib: enable format overflow warnings Stephen Hemminger
2026-01-29  1:41 ` [PATCH v14 00/17] lib: improve string overflow safety Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 01/17] lpm: reject names that exceed maximum length Stephen Hemminger
2026-01-29  1:41   ` Stephen Hemminger [this message]
2026-01-29  1:41   ` [PATCH v14 03/17] graph: avoid overflowing comment buffer Stephen Hemminger
2026-02-04 11:21     ` David Marchand
2026-01-29  1:41   ` [PATCH v14 04/17] latencystats: add check for string overflow Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 05/17] telemetry: check for path overflow Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 06/17] efd: handle possible name truncation Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 07/17] eal: use C library to parse filesystem table Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 08/17] eal: warn if thread name is truncated Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 09/17] eal: avoid format overflow when handling addresses Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 10/17] eal: limit maximum runtime directory and socket paths Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 11/17] eal: check for hugefile path overflow Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 12/17] eal: check tailq length Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 13/17] eal: handle long shared library path Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 14/17] ethdev: avoid possible overflow in xstat names Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 15/17] vhost: check for overflow in xstat name Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 16/17] cfgfile: add length checks and increase line buffer Stephen Hemminger
2026-01-29  1:41   ` [PATCH v14 17/17] lib: enable format overflow warnings Stephen Hemminger
2026-02-05 10:57   ` [PATCH v14 00/17] lib: improve string overflow safety David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260129014313.939831-3-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=sameh.gobriel@intel.com \
    --cc=vladimir.medvedkin@intel.com \
    --cc=yipeng1.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox