| From: | "Matheus Alcantara" <matheusssilv97(at)gmail(dot)com> |
|---|---|
| To: | "Fujii Masao" <masao(dot)fujii(at)gmail(dot)com>, "Ranier Vilela" <ranier(dot)vf(at)gmail(dot)com> |
| Cc: | "Pg Hackers" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Avoid resource leak (contrib/postgres_fdw/connection.c) |
| Date: | 2026-03-18 17:42:35 |
| Message-ID: | DH63DW8BZ6NS.J422FM6QTLW2@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 16/03/26 20:07, Fujii Masao wrote:
> On Mon, Mar 16, 2026 at 8:46 PM Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
>>
>> Hi.
>>
>> Per Coverity.
>>
>> CID 1645716: (#1 of 1): Resource leak (RESOURCE_LEAK)
>> 8. leaked_storage: Variable str going out of scope leaks the storage str.data points to.
>>
>> The function *postgres_fdw_connection* leaks the contents of
>> var str.data
>> Once that function *cstring_to_text* palloc the contents
>> must be necessary to free the var str.data.
>
> It seems that postgres_fdw_connection() is expected to be called by
> ForeignServerConnectionString() via OidFunctionCall3(),
> and to allocate memory (including str.data) in the FDWConnectionContext
> memory context created by ForeignServerConnectionString().
>
> After calling postgres_fdw_connection(), ForeignServerConnectionString()
> deletes FDWConnectionContext. So it seems to me that any memory
> allocated in that context, including str.data, would not leak. No?
>
Yeah, this sounds correct, but I'm wondering if the current pfree
calls on postgres_fdw_connection() is needed?
My previous review was assuming that any allocated memory on
postgres_fdw_connection() should be free at the end because of these
calls, but ForeignServerConnectionString() already assume that this
function leak memory:
/*
* GetForeignServer, GetForeignDataWrapper, and the connection function
* itself all leak memory into CurrentMemoryContext. Switch to a temporary
* context for easy cleanup.
*/
tempContext = AllocSetContextCreate(CurrentMemoryContext,
"FDWConnectionContext",
ALLOCSET_SMALL_SIZES);
--
Matheus Alcantara
EDB: https://www.enterprisedb.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2026-03-18 17:46:14 | Re: dshash_find_or_insert vs. OOM |
| Previous Message | Tom Lane | 2026-03-18 17:33:46 | Re: Enable -Wstrict-prototypes and -Wold-style-definition by default |