aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Conway <mail@joeconway.com>2020-05-28 13:44:54 -0400
committerJoe Conway <mail@joeconway.com>2020-05-28 13:44:54 -0400
commit9003b76e169e8524f8d7c7547aded4749b9c39a1 (patch)
tree7922740d5446b10736ca5596f4c57e75ebb83e2a
parent887cdff4dcbdfbfdbf9a29dfad0edc09c6ec3398 (diff)
downloadpostgresql-9003b76e169e8524f8d7c7547aded4749b9c39a1.tar.gz
postgresql-9003b76e169e8524f8d7c7547aded4749b9c39a1.zip
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
-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);