[dpdk-stable] [PATCH 19.11 2/2] net/mlx5: fix hairpin Rx queue creation error flow

Luca Boccassi bluca at debian.org
Mon Aug 17 11:42:20 CEST 2020


On Sun, 2020-08-16 at 12:06 +0000, Michael Baum wrote:
> [ upstream commit ebed623f621bbe9cf050a9eb7725f4d81cb95d4f ]
> 
> The mlx5_rxq_obj_hairpin_new function defines a pointer named tmpl and
> allocates memory for it using the rte_zmalloc_socket function.
> Later, this function allocates memory to a variable inside tmpl using
> the mlx5_devx_cmd_create_rq function.
> 
> In both cases, if the allocation fails, the code jumps to the error
> label and frees allocated resources. However, in the first jump there
> are still no resources to free and the jump only for the line return
> NULL is unnecessary. Even worse, when it jumps to error label with
> invalid tmpl it actually does dereference to a null pointer.
> In contrast, the second jump needs to free the tmpl variable but the
> function instead of freeing, tries to free the variable that it just
> failed to allocate.
> In addition, for another error, the function returns NULL without
> freeing the tmpl variable before, causing a memory leak.
> 
> Delete the error label and replace each jump with local return NULL and
> free tmpl variable if needed.
> 
> Fixes: e79c9be91515 ("net/mlx5: support Rx hairpin queues")
> 
> Signed-off-by: Michael Baum <michaelba at mellanox.com>
> Acked-by: Matan Azrad <matan at mellanox.com>

Thanks, applied and pushed both.

-- 
Kind regards,
Luca Boccassi


More information about the stable mailing list