Обсуждение: Fix use of variable after pfree

Поиск
Список
Период
Сортировка

Fix use of variable after pfree

От
Shlok Kyal
Дата:
Hi,

While going through the code of the slot sync worker, I found that in
functions ReplSlotSyncWorkerMain and pg_sync_replication_slots the
variable app_name.data is being used after it is freed.

We can get logs as following:
2025-09-02 12:26:48.520 IST [3908359] ERROR:  synchronization worker
"" could not connect to the primary server: connection to server at
"localhost" (127.0.0.1), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?

I have moved the pfree(app_data.name) after its usage.

This change was introduced in PG_18.
The patch applies in the HEAD and REL_18_STABLE branches.

Thanks,
Shlok Kyal

Вложения

Re: Fix use of variable after pfree

От
Amit Kapila
Дата:
On Tue, Sep 2, 2025 at 1:02 PM Shlok Kyal <shlok.kyal.oss@gmail.com> wrote:
>
> Hi,
>
> While going through the code of the slot sync worker, I found that in
> functions ReplSlotSyncWorkerMain and pg_sync_replication_slots the
> variable app_name.data is being used after it is freed.
>
> We can get logs as following:
> 2025-09-02 12:26:48.520 IST [3908359] ERROR:  synchronization worker
> "" could not connect to the primary server: connection to server at
> "localhost" (127.0.0.1), port 5432 failed: Connection refused
>         Is the server running on that host and accepting TCP/IP connections?
>
> I have moved the pfree(app_data.name) after its usage.
>
> This change was introduced in PG_18.
> The patch applies in the HEAD and REL_18_STABLE branches.
>

Thanks for the patch. It looks good to me. I'll take care of it.

--
With Regards,
Amit Kapila.



Re: Fix use of variable after pfree

От
Daniel Gustafsson
Дата:
> On 2 Sep 2025, at 09:42, Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Tue, Sep 2, 2025 at 1:02 PM Shlok Kyal <shlok.kyal.oss@gmail.com> wrote:

>> While going through the code of the slot sync worker, I found that in
>> functions ReplSlotSyncWorkerMain and pg_sync_replication_slots the
>> variable app_name.data is being used after it is freed.
>>
>> We can get logs as following:
>> 2025-09-02 12:26:48.520 IST [3908359] ERROR:  synchronization worker
>> "" could not connect to the primary server: connection to server at
>> "localhost" (127.0.0.1), port 5432 failed: Connection refused
>>        Is the server running on that host and accepting TCP/IP connections?
>>
>> I have moved the pfree(app_data.name) after its usage.
>>
>> This change was introduced in PG_18.
>> The patch applies in the HEAD and REL_18_STABLE branches.
>
> Thanks for the patch. It looks good to me. I'll take care of it.

Agreed, this looks correct.

--
Daniel Gustafsson