From e8eaf82e584c2d27bdeb0a50055e10d55d9c00dc Mon Sep 17 00:00:00 2001 From: Vincas Dargis Date: Sat, 5 Dec 2015 15:20:34 +0200 Subject: PostgreSQL: Fix memory leak in QPSQLDriverPrivate::getPSQLVersion() Memory leak occurs when 'release' pointer variable is overwritten for second use without releasing resources it is currently pointing to. Leak occurs only in specific edge case depending on client/server versions. Task-number: QTBUG-49789 Change-Id: Ie5be8996ed158309f20dbb3574f956d2eb137460 Reviewed-by: Mark Brand --- src/sql/drivers/psql/qsql_psql.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index f4e40b6582..4795738b66 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -757,6 +757,7 @@ QPSQLDriver::Protocol QPSQLDriverPrivate::getPSQLVersion() //Client version before QPSQLDriver::Version9 only supports escape mode for bytea type, //but bytea format is set to hex by default in PSQL 9 and above. So need to force the //server use the old escape mode when connects to the new server with old client library. + PQclear(result); result = exec("SET bytea_output=escape; "); status = PQresultStatus(result); } else if (serverVersion == QPSQLDriver::VersionUnknown) { -- cgit v1.2.3