Skip to content

Commit e8eb485

Browse files
committed
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
1 parent 3ccae54 commit e8eb485

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

contrib/dblink/dblink.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,13 @@ dblink_connect(PG_FUNCTION_ARGS)
273273
conname_or_str = text_to_cstring(PG_GETARG_TEXT_PP(0));
274274

275275
if (connname)
276+
{
276277
rconn = (remoteConn *) MemoryContextAlloc(TopMemoryContext,
277278
sizeof(remoteConn));
279+
rconn->conn = NULL;
280+
rconn->openCursorCount = 0;
281+
rconn->newXactForCursor = false;
282+
}
278283

279284
/* first check for valid foreign data server */
280285
connstr = get_connect_string(conname_or_str);

0 commit comments

Comments
 (0)