All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Renyong Wan <wanry@yunsilicon.com>, Na Na <nana@yunsilicon.com>,
	Rong Qian <qianr@yunsilicon.com>,
	Xiaoxiong Zhang <zhangxx@yunsilicon.com>,
	Dongwei Xu <xudw@yunsilicon.com>
Cc: David Marchand <david.marchand@redhat.com>, dev@dpdk.org
Subject: Re: [PATCH] net/xsc: fix use after free in some RXQ cleanup
Date: Tue, 09 Sep 2025 11:22:15 +0200	[thread overview]
Message-ID: <24075832.6Emhk5qWAg@thomas> (raw)
In-Reply-To: <f50263c8-895e-4878-962e-f888f599bd90@yunsilicon.com>

09/09/2025 10:08, Renyong Wan:
> Thanks David for catching this issue.
> We'll address it in the 25.11 release.

I don't understand your answer.
Do you ack this change?
We want to merge it today because it is breaking our CI on the main branch
(next-net has been pulled yesterday).


> On 2025/9/9 15:04, David Marchand wrote:
> > Debian 12 gcc complains about a use after free in this cleanup section.
> >
> > [7/11] Compiling C object drivers/libtmp_rte_net_xsc.a.p/net_xsc_xsc_rx.c.o
> > In function 'xsc_rss_qp_create',
> >      inlined from 'xsc_rxq_rss_obj_new' at ../drivers/net/xsc/xsc_rx.c:565:8:
> > ../drivers/net/xsc/xsc_rx.c:501:9: warning: pointer 'req' may be used after
> > 	'free' [-Wuse-after-free]
> >    501 |         free(req);
> >        |         ^~~~~~~~~
> > ../drivers/net/xsc/xsc_rx.c:501:9: note: call to 'free' here
> >
> > Indeed, req may be free'd twice, as an error in the cleanup loop may
> > jump back to the set_qp_fail label.
> >
> > Instead, skip the erroneous rxq and don't touch errno since all the code
> > jumping to set_qp_fail already sets it.
> >
> > Fixes: 3991c890fb4c ("net/xsc: optimize RSS queue creation")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> >   drivers/net/xsc/xsc_rx.c | 6 ++----
> >   1 file changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/xsc/xsc_rx.c b/drivers/net/xsc/xsc_rx.c
> > index 5f8003a1f6..5ff3f818c2 100644
> > --- a/drivers/net/xsc/xsc_rx.c
> > +++ b/drivers/net/xsc/xsc_rx.c
> > @@ -502,10 +502,8 @@ xsc_rss_qp_create(struct xsc_ethdev_priv *priv, int port_id)
> >   	for (i = 0; i < set_last_no; i++) {
> >   		xsc_unset_qp_info(xdev, rqn_base + i);
> >   		rxq_data = xsc_rxq_get(priv, i);
> > -		if (rxq_data == NULL) {
> > -			rte_errno = EINVAL;
> > -			goto set_qp_fail;
> > -		}
> > +		if (rxq_data == NULL)
> > +			continue;
> >   		rte_memzone_free(rxq_data->rq_pas);
> >   		rxq_data->rq_pas = NULL;
> >   	}




  reply	other threads:[~2025-09-09  9:22 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-09  7:04 [PATCH] net/xsc: fix use after free in some RXQ cleanup David Marchand
2025-09-09  8:08 ` Renyong Wan
2025-09-09  9:22   ` Thomas Monjalon [this message]
2025-09-09 13:04     ` Renyong Wan
2025-09-09 14:45 ` David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=24075832.6Emhk5qWAg@thomas \
    --to=thomas@monjalon.net \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=nana@yunsilicon.com \
    --cc=qianr@yunsilicon.com \
    --cc=wanry@yunsilicon.com \
    --cc=xudw@yunsilicon.com \
    --cc=zhangxx@yunsilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.