Commit 8d2814f2 authored by Magnus Hagander's avatar Magnus Hagander

Fix pg_recvlogical for pre-10 versions

In e170b8c8, protection against modified search_path was added. However,
PostgreSQL versions prior to 10 does not accept SQL commands over a
replication connection, so the protection would generate a syntax error.

Since we cannot run SQL commands on it, we are also not vulnerable to
the issue that e170b8c8 fixes, so we can just skip this command for
older versions.

Author: Michael Paquier <michael@paquier.xyz>
parent 2dbee9f1
......@@ -209,8 +209,13 @@ GetConnection(void)
if (conn_opts)
PQconninfoFree(conn_opts);
/* Set always-secure search path, so malicious users can't get control. */
if (dbname != NULL)
/*
* Set always-secure search path, so malicious users can't get control.
* The capacity to run normal SQL queries was added in PostgreSQL
* 10, so the search path cannot be changed (by us or attackers) on
* earlier versions.
*/
if (dbname != NULL && PQserverVersion(conn) >= 100000)
{
PGresult *res;
......
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