diff options
author | Joe Conway <mail@joeconway.com> | 2020-05-28 13:44:54 -0400 |
---|---|---|
committer | Joe Conway <mail@joeconway.com> | 2020-05-28 13:44:54 -0400 |
commit | 9003b76e169e8524f8d7c7547aded4749b9c39a1 (patch) | |
tree | 7922740d5446b10736ca5596f4c57e75ebb83e2a | |
parent | 887cdff4dcbdfbfdbf9a29dfad0edc09c6ec3398 (diff) | |
download | postgresql-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.c | 5 |
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); |