patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH] common/mlx5: fix missing validation in devargs parsing
@ 2021-12-16 18:40 michaelba
  2022-01-06  9:06 ` Raslan Darawsheh
  0 siblings, 1 reply; 2+ messages in thread
From: michaelba @ 2021-12-16 18:40 UTC (permalink / raw)
  To: dev
  Cc: Matan Azrad, Raslan Darawsheh, Viacheslav Ovsiienko,
	Michael Baum, stable

From: Michael Baum <michaelba@nvidia.com>

The rte_kvargs_parse function parses the arguments
"key=value,key=value,..." string and return an allocated structure that
contains a key/value list.
It enables also to send a key without value and updates the values in
the following ways:
 - "key=value,key,..." - value is updated as NULL.
 - "key=value,key=,..." - value is updated as "" (empty string).

Mlx5 PMDs use this function to parse, but they don't support key without
value. They send the value as an argument to strtol function.
When strtol gets NULL as a parameter it cause a crash, when it gets ""
(empty string) it returns 0.

Adds a check that will prevent an argument in these formats, and returns
an error for it.

Fixes: 85209924039c4 ("common/mlx5: share memory related devargs")
Cc: stable@dpdk.org

Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c
index f1650f94c6..76cfeafef8 100644
--- a/drivers/common/mlx5/mlx5_common.c
+++ b/drivers/common/mlx5/mlx5_common.c
@@ -111,6 +111,11 @@ mlx5_common_args_check_handler(const char *key, const char *val, void *opaque)
 	struct mlx5_common_dev_config *config = opaque;
 	signed long tmp;
 
+	if (val == NULL || *val == '\0') {
+		DRV_LOG(ERR, "Key %s is missing value.", key);
+		rte_errno = EINVAL;
+		return -rte_errno;
+	}
 	errno = 0;
 	tmp = strtol(val, NULL, 0);
 	if (errno) {
-- 
2.25.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: [PATCH] common/mlx5: fix missing validation in devargs parsing
  2021-12-16 18:40 [PATCH] common/mlx5: fix missing validation in devargs parsing michaelba
@ 2022-01-06  9:06 ` Raslan Darawsheh
  0 siblings, 0 replies; 2+ messages in thread
From: Raslan Darawsheh @ 2022-01-06  9:06 UTC (permalink / raw)
  To: Michael Baum, dev; +Cc: Matan Azrad, Slava Ovsiienko, stable

Hi,

> -----Original Message-----
> From: Michael Baum <michaelba@nvidia.com>
> Sent: Thursday, December 16, 2021 8:41 PM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@nvidia.com>; Raslan Darawsheh
> <rasland@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Michael
> Baum <michaelba@nvidia.com>; stable@dpdk.org
> Subject: [PATCH] common/mlx5: fix missing validation in devargs parsing
> 
> From: Michael Baum <michaelba@nvidia.com>
> 
> The rte_kvargs_parse function parses the arguments
> "key=value,key=value,..." string and return an allocated structure that
> contains a key/value list.
> It enables also to send a key without value and updates the values in the
> following ways:
>  - "key=value,key,..." - value is updated as NULL.
>  - "key=value,key=,..." - value is updated as "" (empty string).
> 
> Mlx5 PMDs use this function to parse, but they don't support key without
> value. They send the value as an argument to strtol function.
> When strtol gets NULL as a parameter it cause a crash, when it gets ""
> (empty string) it returns 0.
> 
> Adds a check that will prevent an argument in these formats, and returns an
> error for it.
> 
> Fixes: 85209924039c4 ("common/mlx5: share memory related devargs")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Michael Baum <michaelba@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-01-06  9:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-16 18:40 [PATCH] common/mlx5: fix missing validation in devargs parsing michaelba
2022-01-06  9:06 ` Raslan Darawsheh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).