The rte_kvargs_process() was used to parse KV pairs, it also supports
to parse 'only keys' (e.g. socket_id) type. And the callback function
parameter 'value' is NULL when parsed 'only keys'.

If the input args is just "name" (which mean only has keys), then it
will get (null) name in rte_compressdev_pmd_parse_name_arg(). This
patch fixes it.

Fixes: ed7dd94f7f66 ("compressdev: add basic device management")
Cc: sta...@dpdk.org

Signed-off-by: Chengwen Feng <fengcheng...@huawei.com>
---
 lib/compressdev/rte_compressdev_pmd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/compressdev/rte_compressdev_pmd.c 
b/lib/compressdev/rte_compressdev_pmd.c
index 93c31fbac8..156bccd972 100644
--- a/lib/compressdev/rte_compressdev_pmd.c
+++ b/lib/compressdev/rte_compressdev_pmd.c
@@ -23,6 +23,9 @@ rte_compressdev_pmd_parse_name_arg(const char *key 
__rte_unused,
        struct rte_compressdev_pmd_init_params *params = extra_args;
        int n;
 
+       if (value == NULL || extra_args == NULL)
+               return -EINVAL;
+
        n = strlcpy(params->name, value, RTE_COMPRESSDEV_NAME_MAX_LEN);
        if (n >= RTE_COMPRESSDEV_NAME_MAX_LEN)
                return -EINVAL;
-- 
2.17.1

Reply via email to