summaryrefslogtreecommitdiff
path: root/contrib/dblink
diff options
context:
space:
mode:
authorJoe Conway2020-05-28 17:44:54 +0000
committerJoe Conway2020-05-28 17:44:54 +0000
commit9003b76e169e8524f8d7c7547aded4749b9c39a1 (patch)
tree7922740d5446b10736ca5596f4c57e75ebb83e2a /contrib/dblink
parent887cdff4dcbdfbfdbf9a29dfad0edc09c6ec3398 (diff)
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
Diffstat (limited to 'contrib/dblink')
-rw-r--r--contrib/dblink/dblink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 2fe5da22b9a..736433237c8 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -298,8 +298,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);