summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Conway2020-05-28 17:45:02 +0000
committerJoe Conway2020-05-28 17:45:02 +0000
commit49a00e07c534d0d4378d40b6240e061640051304 (patch)
treed0422272e2402a4f96e9907e2e2afa54b6b36e1d
parent36758c472ea71dae96f4b495df65490413c79c83 (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
-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 c6460688486..f4efdd4b377 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -272,8 +272,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);