Re: Use-after-free issue in postgres_fdw

From: Matheus Alcantara <matheusssilv97(at)gmail(dot)com>
To: Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>
Subject: Re: Use-after-free issue in postgres_fdw
Date: 2026-03-20 16:00:48
Message-ID: f5872bee-ad3e-4d04-8976-6d4962b233fa@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 19/03/26 11:56, Etsuro Fujita wrote:
> I think the root cause is that it is too early to free the PGconn in
> pgfdw_reject_incomplete_xact_state_change() even if the connection is
> in a state where we cannot use it any further; I think we should delay
> that until abort cleanup (ie, pgfdw_xact_callback()). Attached is a
> patch for that.
>

IIUC, with this patch, disconnect_pg_server() will be called at
pgfdw_xact_callback() via pgfdw_reset_xact_state() when the top level
transaction is rollback right?

I've tested and it seems to fix the issue, when "close c1;" is
executed "conn" points to a valid connection pointer and this
connection is properly disconnected when the top level transactions is
rollback.

This issue is reproducible on v14, so I think that we need a back-port.

--
Matheus Alcantara
EDB: https://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2026-03-20 16:03:15 Re: Change default of jit to off
Previous Message Bharath Rupireddy 2026-03-20 16:00:00 Re: Use WALReadFromBuffers in more places