[dpdk-dev] [PATCH] lib/cmdline: release cl when cmdline exit

Peng, ZhihongX zhihongx.peng at intel.com
Thu Sep 30 08:53:30 CEST 2021


> -----Original Message-----
> From: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> Sent: Monday, September 6, 2021 3:34 PM
> To: Peng, ZhihongX <zhihongx.peng at intel.com>
> Cc: olivier.matz at 6wind.com; dev at dpdk.org; stable at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] lib/cmdline: release cl when cmdline exit
> 
> 2021-09-06 05:51 (UTC+0000), Peng, ZhihongX:
> > > -----Original Message-----
> > > From: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> > > Sent: Wednesday, September 1, 2021 1:52 AM
> > > To: Peng, ZhihongX <zhihongx.peng at intel.com>
> > > Cc: olivier.matz at 6wind.com; dev at dpdk.org; stable at dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH] lib/cmdline: release cl when cmdline
> > > exit
> > >
> > > 2021-08-31 10:28 (UTC+0800), zhihongx.peng at intel.com:
> > > > From: Zhihong Peng <zhihongx.peng at intel.com>
> > > >
> > > > Malloc cl in the cmdline_stdin_new function, so release in the
> > > > cmdline_stdin_exit function is logical, so that cl will not be
> > > > released alone.
> > > >
> > > > Fixes: af75078fece3 (first public release)
> > > > Cc: stable at dpdk.org
> > > >
> > > > Signed-off-by: Zhihong Peng <zhihongx.peng at intel.com>
> > > > ---
> > > >  lib/cmdline/cmdline_socket.c | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > >
> > > > diff --git a/lib/cmdline/cmdline_socket.c
> > > > b/lib/cmdline/cmdline_socket.c index 998e8ade25..ebd5343754 100644
> > > > --- a/lib/cmdline/cmdline_socket.c
> > > > +++ b/lib/cmdline/cmdline_socket.c
> > > > @@ -53,4 +53,5 @@ cmdline_stdin_exit(struct cmdline *cl)
> > > >  		return;
> > > >
> > > >  	terminal_restore(cl);
> > > > +	cmdline_free(cl);
> > > >  }
> > >
> > > Now cmdline_free() may not be called after cmdline_stdin_exit().
> > > User code that does so needs to be changed to avoid double-free.
> > > This behavior change must be documented in the release notes.
> > > I'm not sure it should be backported because of the above.
> > Using the asan tool, I found that many dpdk apps did not call cmdline_free,
> only one app called.
> 
> I mean external programs that use DPDK, not DPDK bundled apps only.
> If some of them use a stable DPDK branch and the change is backported, a
> double-free will be introduced by upgrading DPDK to a minor version.
> Users of current DPDK version that call cmdline_free() after
> cmdline_stdin_exit() will have to upgrade their code, release notes are the
> place to inform them about this need.
> The patch itself is good and now it is the right time for it.

Can you give me an ack, I have submitted v2:
http://patches.dpdk.org/project/dpdk/patch/20210917021502.502560-1-zhihongx.peng@intel.com/


More information about the dev mailing list