net/mlx5: fix check for rte calloc return value

Message ID 1560937584-447773-1-git-send-email-asafp@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix check for rte calloc return value |

Checks

Context Check Description
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Asaf Penso June 19, 2019, 9:46 a.m. UTC
  rte_calloc functions returns a non-null pointer in case of
success and null pointer in case of failure.

The return value should be checked and the function flow
should take that into consideration.

This patch adds a check for rte_calloc return value in function
flow_list_create.

Fixes: 84c406e7 ("net/mlx5: add flow translate function")
Cc: stable@dpdk.org

Signed-off-by: Asaf Penso <asafp@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Slava Ovsiienko July 2, 2019, 3 p.m. UTC | #1
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Asaf Penso
> Sent: Wednesday, June 19, 2019 12:46
> To: Yongseok Koh <yskoh@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix check for rte calloc return value
> 
> rte_calloc functions returns a non-null pointer in case of success and null
> pointer in case of failure.
> 
> The return value should be checked and the function flow should take that
> into consideration.
> 
> This patch adds a check for rte_calloc return value in function
> flow_list_create.
> 
> Fixes: 84c406e7 ("net/mlx5: add flow translate function")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Asaf Penso <asafp@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Thanks

> ---
>  drivers/net/mlx5/mlx5_flow.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 9887018..a5821e5 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -2092,6 +2092,10 @@ uint32_t mlx5_flow_adjust_priority(struct
> rte_eth_dev *dev, int32_t priority,
>  	else
>  		flow_size += RTE_ALIGN_CEIL(sizeof(uint16_t), sizeof(void
> *));
>  	flow = rte_calloc(__func__, 1, flow_size, 0);
> +	if (!flow) {
> +		rte_errno = ENOMEM;
> +		return NULL;
> +	}
>  	flow->drv_type = flow_get_drv_type(dev, attr);
>  	flow->ingress = attr->ingress;
>  	flow->transfer = attr->transfer;
> --
> 1.8.3.1
  
Raslan Darawsheh July 2, 2019, 3:29 p.m. UTC | #2
Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Asaf Penso
> Sent: Wednesday, June 19, 2019 12:46
> To: Yongseok Koh <yskoh@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix check for rte calloc return
> value
>
> rte_calloc functions returns a non-null pointer in case of success and
> null pointer in case of failure.
>
> The return value should be checked and the function flow should take
> that into consideration.
>
> This patch adds a check for rte_calloc return value in function
> flow_list_create.
>
> Fixes: 84c406e7 ("net/mlx5: add flow translate function")
> Cc: stable@dpdk.org
>
> Signed-off-by: Asaf Penso <asafp@mellanox.com>
> 

Patch applied to next-net-mlx

Kindest regards
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 9887018..a5821e5 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -2092,6 +2092,10 @@  uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,
 	else
 		flow_size += RTE_ALIGN_CEIL(sizeof(uint16_t), sizeof(void *));
 	flow = rte_calloc(__func__, 1, flow_size, 0);
+	if (!flow) {
+		rte_errno = ENOMEM;
+		return NULL;
+	}
 	flow->drv_type = flow_get_drv_type(dev, attr);
 	flow->ingress = attr->ingress;
 	flow->transfer = attr->transfer;