On Sun, May 12, 2019 at 06:01:26PM +0200, Tim Düsterhus wrote:
> Willy,
> 
> Am 11.05.19 um 05:53 schrieb Willy Tarreau:
> >> diff --git a/src/vars.c b/src/vars.c
> >> index 477a14632..d32310270 100644
> >> --- a/src/vars.c
> >> +++ b/src/vars.c
> >> @@ -510,6 +510,7 @@ int vars_check_arg(struct arg *arg, char **err)
> >>                         err);
> >>    if (!name)
> >>            return 0;
> >> +  free(arg->data.str.area);
> > 
> > Here I'll add "arg->data.str.area=NULL". It significantly simplifies 
> > debugging
> > sessions to avoid leaving pointers to freed areas in various structs.
> 
> I believe it is not strictly necessary here, because the pointer is
> overridden directly below - when writing to the scope member of the var
> struct (otherwise valgrind would not have complained!) - but I agree
> that this generally is good style.

Absolutely, it was really not for correctness but to remove doubts over
the long term. When the code evolves, some paths that granted certain
conditions do not grant them anymore and this is when such cases start
to create doubts.

Cheers,
Willy

Reply via email to