postgres.git / summary / log / commit / refs

commit    166dfb3a903eee25637b846a87a4a63c67d5e796
Author:   Joe Conway <mail@joeconway.com>
Date:     Sat Mar 11 21:33:14 2017 +0000

    Fix ancient connection leak in dblink
    
    When using unnamed connections with dblink, every time a new
    connection is made, the old one is leaked. Fix that.
    
    This has been an issue probably since dblink was first committed.
    Someone complained almost ten years ago, but apparently I decided
    not to pursue it at the time, and neither did anyone else, so it
    slipped between the cracks. Now that someone else has complained,
    fix in all supported branches.
    
    Discussion: (orig) https://postgr.es/m/flat/F680AB59-6D6F-4026-9599-1BE28880273D%40decibel.org#F680AB59-6D6F-4026-9599-1BE28880273D@decibel.org
    Discussion: (new) https://postgr.es/m/flat/0A3221C70F24FB45833433255569204D1F6ADF8C@G01JPEXMBYT05
    Reported by: Jim Nasby and Takayuki Tsunakawa


contrib/dblink/dblink.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index 38b46b04f0a..85ba2a8d1ad 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -301,7 +301,11 @@ dblink_connect(PG_FUNCTION_ARGS) createNewConnection(connname, rconn); } else + { + if (pconn->conn) + PQfinish(pconn->conn); pconn->conn = conn; + } PG_RETURN_TEXT_P(cstring_to_text("OK")); } [parent: 64d132c2997e]