From 43d7934a3a9291aac6d3c713107bdac059062e0d Mon Sep 17 00:00:00 2001 From: Joe Conway Date: Thu, 28 May 2020 13:45:11 -0400 Subject: [PATCH] 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 9528d33f484..ad69a53e556 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); -- 2.47.2