[dpdk-dev] [PATCH] net/softnic: fix illegal memory access

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Mon Jul 16 18:04:16 CEST 2018



> -----Original Message-----
> From: Singh, Jasvinder
> Sent: Monday, July 16, 2018 1:42 PM
> To: dev at dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>
> Subject: [PATCH] net/softnic: fix illegal memory access
> 
> Fix pointer dereferencing and read after free (USE_AFTER_FREE).
> 
> Coverity issue: 302867
> Fixes: bef50bcb1c47 ("net/softnic: implement start and stop")
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh at intel.com>
> ---
>  drivers/net/softnic/rte_eth_softnic_swq.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/softnic/rte_eth_softnic_swq.c
> b/drivers/net/softnic/rte_eth_softnic_swq.c
> index 1944fbb..604a2cc 100644
> --- a/drivers/net/softnic/rte_eth_softnic_swq.c
> +++ b/drivers/net/softnic/rte_eth_softnic_swq.c
> @@ -36,9 +36,13 @@ softnic_swq_free(struct pmd_internals *p)
>  void
>  softnic_softnic_swq_free_keep_rxq_txq(struct pmd_internals *p)
>  {
> -	struct softnic_swq *swq;
> +	for ( ; ; ) {
> +		struct softnic_swq *swq;
> +
> +		swq = TAILQ_FIRST(&p->swq_list);
> +		if (swq == NULL)
> +			break;
> 
> -	TAILQ_FOREACH(swq, &p->swq_list, node) {
>  		if ((strncmp(swq->name, "RXQ", strlen("RXQ")) == 0) ||
>  			(strncmp(swq->name, "TXQ", strlen("TXQ")) == 0))
>  			continue;
> --
> 2.9.3

Where is the bug? We simply parse a linked list to free each element.



More information about the dev mailing list