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 <[email protected]>
---
 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

Reply via email to