[PATCH v5 02/12] net/ixgbe: fix memory leak in security flows

Burakov, Anatoly anatoly.burakov at intel.com
Fri Feb 13 09:44:49 CET 2026


On 2/12/2026 6:10 PM, Bruce Richardson wrote:
> On Thu, Feb 12, 2026 at 12:53:25PM +0000, Anatoly Burakov wrote:
>> Currently, security flows are implemented as a special case and do not go
>> through the normal flow create/destroy infrastructure. However, because of
>> that, it is impossible to destroy such flows once created. Fix it by adding
>> a flag to rte_flow indicating that it is a security flow, so that it can be
>> destroyed later.
>>
>> Additionally, security flows return pointer to allocated `rte_flow` struct
>> unconditionally, even though the underlying call to ipsec code might have
>> failed. Fix that by checking the return value from the filter function
>> before returning.
>>
>> Fixes: 9a0752f498d2 ("net/ixgbe: enable inline IPsec")
>> Cc: radu.nicolau at intel.com
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>

<snip>

>> @@ -3350,6 +3354,12 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev,
>>   		IXGBE_DEV_PRIVATE_TO_FDIR_INFO(dev->data->dev_private);
>>   	struct ixgbe_rss_conf_ele *rss_filter_ptr;
>>   
>> +	/* Special case for SECURITY flows */
>> +	if (flow->is_security) {
>> +		ret = 0;
> 
> Rather than assigning ret explicitly here, I think it might be better just
> to set it = 0  at definition, and leaving this as a simple goto free. [It
> would also head off any future compiler warnings about ret being
> uninitialized :-)]
> 

I actually remember a lot of commits *removing* that sort of thing, with 
the idea being that we *want* to have these warnings to make sure every 
path is covered. Additionally, I personally prefer it this way for 
clarity (i.e. explicitly indicating success).

I can still fix it if you have strong feelings on it, but I'd rather 
leave it as is.

-- 
Thanks,
Anatoly


More information about the dev mailing list