Fix use of variable after pfree
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
Attachments:
v1-0001-Fix-use-of-variable-after-pfree.patchapplication/octet-stream; name=v1-0001-Fix-use-of-variable-after-pfree.patchDownload+4-3
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.
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