potential memory leak in pg_regcomp()

Started by Zhihong Yuover 3 years ago3 messages
#1Zhihong Yu
zyu@yugabyte.com

Hi,
I was looking at pg_regcomp():

re->re_guts = VS(MALLOC(sizeof(struct guts)));

I did some search trying to find where re_guts is freed but haven't
found it.
Can someone enlighten me?

Thanks

#2Michael Paquier
michael@paquier.xyz
In reply to: Zhihong Yu (#1)
Re: potential memory leak in pg_regcomp()

On Fri, Jul 22, 2022 at 08:20:04PM -0700, Zhihong Yu wrote:

Hi,
I was looking at pg_regcomp():

re->re_guts = VS(MALLOC(sizeof(struct guts)));

I did some search trying to find where re_guts is freed but haven't
found it.
Can someone enlighten me?

Oops. It seems that you are right and that there is room for
improvement here. regguts.h defines MALLOC() as a simple malloc()..
--
Michael

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Zhihong Yu (#1)
Re: potential memory leak in pg_regcomp()

Zhihong Yu <zyu@yugabyte.com> writes:

I was looking at pg_regcomp():
re->re_guts = VS(MALLOC(sizeof(struct guts)));
I did some search trying to find where re_guts is freed but haven't
found it.

In rfree(), which is called from freev().

regards, tom lane