[PATCH 2/4] kvargs: harden rte_kvargs_parse
Stephen Hemminger
stephen at networkplumber.org
Mon Oct 5 18:53:48 CEST 2026
Make rte_kvargs_parse(NULL, ...) return an empty list rather than crash.
NULL is not excluded by the API doc, and an empty list matches
"no arguments" so safer.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
lib/kvargs/rte_kvargs.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/kvargs/rte_kvargs.c b/lib/kvargs/rte_kvargs.c
index 4e3198b33f..89c1b74308 100644
--- a/lib/kvargs/rte_kvargs.c
+++ b/lib/kvargs/rte_kvargs.c
@@ -272,6 +272,10 @@ rte_kvargs_parse(const char *args, const char * const valid_keys[])
return NULL;
memset(kvlist, 0, sizeof(*kvlist));
+ /* Treat NULL as empty string */
+ if (args == NULL)
+ return kvlist;
+
if (rte_kvargs_tokenize(kvlist, args) < 0) {
rte_kvargs_free(kvlist);
return NULL;
@@ -294,7 +298,7 @@ rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],
char *copy;
size_t len;
- if (valid_ends == NULL)
+ if (args == NULL || valid_ends == NULL)
return rte_kvargs_parse(args, valid_keys);
copy = strdup(args);
--
2.53.0
More information about the dev
mailing list