[4/9] cryptodev: fix segment fault when parse input args
Checks
Commit Message
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'.
This patch fixes segment fault when parse input args with 'only keys'
(e.g. socket_id,max_nb_queue_pairs).
Fixes: 9e6edea41805 ("cryptodev: add APIs to assist PMD initialisation")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
lib/cryptodev/cryptodev_pmd.c | 4 ++++
1 file changed, 4 insertions(+)
Comments
> 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'.
>
> This patch fixes segment fault when parse input args with 'only keys'
> (e.g. socket_id,max_nb_queue_pairs).
>
> Fixes: 9e6edea41805 ("cryptodev: add APIs to assist PMD initialisation")
> Cc: stable@dpdk.org
>
> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
I would say, you can squash your 4/9 and 5/9 patch in a single commit.
As you are doing the same thing in both the patches.
On 2023/3/2 16:11, Akhil Goyal wrote:
>> 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'.
>>
>> This patch fixes segment fault when parse input args with 'only keys'
>> (e.g. socket_id,max_nb_queue_pairs).
>>
>> Fixes: 9e6edea41805 ("cryptodev: add APIs to assist PMD initialisation")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
> Acked-by: Akhil Goyal <gakhil@marvell.com>
>
> I would say, you can squash your 4/9 and 5/9 patch in a single commit.
> As you are doing the same thing in both the patches.
The cause of the problem is the same but the symptom is different, so I split two commit.
It's okay to squash.
> .
>
@@ -38,6 +38,10 @@ rte_cryptodev_pmd_parse_uint_arg(const char *key __rte_unused,
{
int i;
char *end;
+
+ if (value == NULL || extra_args == NULL)
+ return -EINVAL;
+
errno = 0;
i = strtol(value, &end, 10);