postgres.git / summary / log / commit / refs
commit f140d9b6e0aff91e07b7dd80cf0915bb19f02a9c
Author: Joe Conway <mail@joeconway.com>
Date: Thu May 28 17:45:15 2020 +0000
First released in: 13.0, 9.5.23, 9.6.19, 10.14, 11.9, 12.4
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
contrib/dblink/dblink.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index 057a25ae118..123b70ae258 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -263,8 +263,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);
[parent: bfb9595a786e]