postgres.git / summary / log / commit / refs

commit    e8eb485954463c2ed1d8dee48ae58063dffec972
Author:   Joe Conway <mail@joeconway.com>
Date:     Thu May 28 17:44:59 2020 +0000
First released in: 13.0, 9.5.23, 9.6.19, 10.14, 11.9, 12.4

    Initialize dblink remoteConn struct in all cases
    
    Two of the members of rconn were left uninitialized. When
    dblink_open() is called without an outer transaction it
    handles the initialization for us, but with an outer
    transaction it does not. Arrange for initialization
    in all cases. Backpatch to all supported versions.
    
    Reported-by: Alexander Lakhin
    Discussion: https://www.postgresql.org/message-id/flat/9bd0744f-5f04-c778-c5b3-809efe9c30c7%40joeconway.com#c545909a41664991aca60c4d70a10ce7


contrib/dblink/dblink.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index e432457e2d5..5381976a92b 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -273,8 +273,13 @@ dblink_connect(PG_FUNCTION_ARGS) conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0)); if (connname) + { rconn = (remoteConn *) MemoryContextAlloc(TopMemoryContext, sizeof(remoteConn)); + rconn->conn = NULL; + rconn->openCursorCount = 0; + rconn->newXactForCursor = false; + } /* first check for valid foreign data server */ connstr = get_connect_string(conname_or_str); [parent: 3ccae5445cc8]