From: Joe Conway Date: Thu, 28 May 2020 17:45:15 +0000 (-0400) Subject: Initialize dblink remoteConn struct in all cases X-Git-Tag: REL9_5_23~61 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=f140d9b6e0aff91e07b7dd80cf0915bb19f02a9c;p=postgresql-pgindent.git 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 --- diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index 057a25ae11..123b70ae25 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -263,8 +263,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);