Re: [PATCH 10/21] trailer: fix leaking trailer values
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Oct 21, 2024, 08:44 UTC
- Message-ID
- <ZxYUiZ16qbPGi2S-@pks.im>
- In-Reply-To
- <878quld3e9.fsf@iotcl.com>
On Fri, Oct 18, 2024 at 02:03:26PM +0200, Toon Claes wrote:
Show 22 quoted lines
> Patrick Steinhardt <ps@pks.im> writes: > > > Fix leaking trailer values when replacing the value with a command or > > when the token value is empty. > > > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > > --- > > > > diff --git a/trailer.c b/trailer.c > > index 682d74505bf..5c0bfb735a9 100644 > > --- a/trailer.c > > +++ b/trailer.c > > @@ -1124,7 +1131,7 @@ void format_trailers(const struct process_trailer_options *opts, > > * corresponding value). > > */ > > if (opts->trim_empty && !strlen(item->value)) > > - continue; > > + goto next; > > While this is technically correct, I found it rather hard to understand > what's happening. What do you think about instead turning the `if` below > in an `else if` ?
An even better idea is to lift the buffers outside of the loop. Like this we don't have to reallocate them on every iteration and can easily release them once at the end of the function.
Patrick