Re: Memory leak fix in rmtree.c

2024-02-06 Thread Daniel Gustafsson
> On 6 Feb 2024, at 12:45, Ильясов Ян  wrote:
> 
> I agree with your argument.
> Thank you for your time.

Thank you for your report!

--
Daniel Gustafsson





RE: Memory leak fix in rmtree.c

2024-02-06 Thread Ильясов Ян
I agree with your argument.
Thank you for your time.


Kind regards,
Ian Ilyasov

Juniour Software Developer at Postgres Professional



Re: Memory leak fix in rmtree.c

2024-02-06 Thread Daniel Gustafsson
> On 6 Feb 2024, at 11:21, Ильясов Ян  wrote:
> 
> > dirnames isn't allocated at this point, it's palloc'd after this return
> > statement on line 67.
> 
> I am sorry, I pointed on the wrong branch. I see that in master
> it is really in line 67th , and the allocation goes well. But in
> REL_16_STABLE the allocation is in line 58th and my patch is for this branch 
> only.

Ok, that makes more sense.  That was changed in commit f1e9f6bbfa53, and in the
discussion for that patch it was deemed that no callers actually suffered from
the leak as they were exiting (or erroring out) on error, so it was never back-
patched.

  
https://www.postgresql.org/message-id/flat/CAEudQAoN3-2ZKBALThnEk_q2hu8En5A0WG9O%2B5siJTQKVZzoWQ%40mail.gmail.com

That still holds true today, so I don't see a big incentive to spend energy on
backpatching that since it mainly serves to silence analyzers.  Grepping for
the pattern of allocating in the declaration doesn't reveal any other codepaths
where the allocation leaks like this.

--
Daniel Gustafsson





RE: Memory leak fix in rmtree.c

2024-02-06 Thread Ильясов Ян
> dirnames isn't allocated at this point, it's palloc'd after this return
> statement on line 67.
>
> --
> Daniel Gustafsson

I am sorry, I pointed on the wrong branch. I see that in master
it is really in line 67th , and the allocation goes well. But in
REL_16_STABLE the allocation is in line 58th and my patch is for this branch 
only.

Kind regards,
Ian Ilyasov.






Re: Memory leak fix in rmtree.c

2024-02-06 Thread Daniel Gustafsson
> On 6 Feb 2024, at 10:34, Ильясов Ян  wrote:

> Just like some of my colleagues I've been using Svace*
> and I think I've found a bug in src/common/rmtree.c .
> 
> In 64th line function returns false in case it couldn't open a directory,
> but the memory, that have been allocated for char** dirnames is
> not freed.

dirnames isn't allocated at this point, it's palloc'd after this return
statement on line 67.

--
Daniel Gustafsson