Commit 9003b76e authored by Joe Conway's avatar Joe Conway

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
parent 887cdff4
...@@ -298,8 +298,13 @@ dblink_connect(PG_FUNCTION_ARGS) ...@@ -298,8 +298,13 @@ dblink_connect(PG_FUNCTION_ARGS)
conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0)); conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0));
if (connname) if (connname)
{
rconn = (remoteConn *) MemoryContextAlloc(TopMemoryContext, rconn = (remoteConn *) MemoryContextAlloc(TopMemoryContext,
sizeof(remoteConn)); sizeof(remoteConn));
rconn->conn = NULL;
rconn->openCursorCount = 0;
rconn->newXactForCursor = false;
}
/* first check for valid foreign data server */ /* first check for valid foreign data server */
connstr = get_connect_string(conname_or_str); connstr = get_connect_string(conname_or_str);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment