[dpdk-stable] [PATCH v3 1/2] lib/cmdline: release cl when cmdline exit

Peng, ZhihongX zhihongx.peng at intel.com
Wed Oct 13 03:53:57 CEST 2021


> -----Original Message-----
> From: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>
> Sent: Monday, October 11, 2021 4:26 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: [PATCH v3 1/2] lib/cmdline: release cl when cmdline exit
> 
> 2021-10-08 06:41 (UTC+0000), 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
> 
> As I have explained before, backporting this will introduce a double-free bug
> in user apps unless their code are fixed, so it must not be done.

The release notes have stated that this is the only thing we can do,
and this unreasonable design should be resolved as soon as possible.
And the user apps change is very small.
> >
> > Signed-off-by: Zhihong Peng <zhihongx.peng at intel.com>
> > ---
> >  doc/guides/rel_notes/release_21_11.rst | 5 +++++
> >  lib/cmdline/cmdline_socket.c           | 1 +
> >  2 files changed, 6 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/release_21_11.rst
> > b/doc/guides/rel_notes/release_21_11.rst
> > index efeffe37a0..be24925d16 100644
> > --- a/doc/guides/rel_notes/release_21_11.rst
> > +++ b/doc/guides/rel_notes/release_21_11.rst
> > @@ -191,6 +191,11 @@ API Changes
> >    the crypto/security operation. This field will be used to communicate
> >    events such as soft expiry with IPsec in lookaside mode.
> >
> > +* cmdline: The API cmdline_stdin_exit has added cmdline_free function.
> > +  Malloc cl in the cmdline_stdin_new function, so release in the
> > +  cmdline_stdin_exit function is logical. The application code
> > +  that calls cmdline_free needs to be deleted.
> > +
> 
> There's probably no need to go into such details, suggestion:
> 
> * cmdline: ``cmdline_stdin_exit()`` now frees the ``cmdline`` structure.
>   Calls to ``cmdline_free()`` after it need to be deleted from applications.

v4 version will be fixed.
> >
> >  ABI Changes
> >  -----------
> > 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);
> >  }



More information about the stable mailing list