From c2e3b84ec80d90e93a83e26ccc8c4fb750bb2d03 Mon Sep 17 00:00:00 2001 From: Michael Baum Date: Mon, 24 Oct 2022 15:33:35 +0300 Subject: [PATCH] net/mlx5: fix null check in devargs parsing The "mlx5_os_parse_eth_devargs()" function parses the ETH devargs into a specific structure called "eth_da". It gets structure called "devargs" as a member of EAL device containing the relevant information. When "devargs" structure is invalid, the function avoids parsing it. However, when it valid but its field "args" is invalid, the function tries to parse it and dereference to NULL pointer. This patch adds check to avoid this NULL dereferencing. Fixes: 919488fbfa71 ("net/mlx5: support Sub-Function") Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index ab7ffa0931..2b6741396d 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -2411,7 +2411,7 @@ mlx5_os_parse_eth_devargs(struct rte_device *dev, dev->devargs->cls_str); return -rte_errno; } - if (eth_da->type == RTE_ETH_REPRESENTOR_NONE) { + if (eth_da->type == RTE_ETH_REPRESENTOR_NONE && dev->devargs->args) { /* Parse legacy device argument */ ret = rte_eth_devargs_parse(dev->devargs->args, eth_da); if (ret) {