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

