From 0ae05c18e0bf740e6457e710f9323e75f6619c35 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Wed, 15 May 2024 22:48:51 +0200 Subject: [PATCH] Fix query result leak during binary upgrade 9a974cbcba00 moved the query in binary_upgrade_set_pg_class_oids to the outer level, but left the PQclear and query buffer destruction in the is_index conditional. 353708e1fb2d fixed the leak of the query buffer but left the PGresult leak. This moves clearing the result to the outer level ensuring that it will be called. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/374550C1-F4ED-4D9D-9498-0FD029CCF674@yesql.se Backpatch-through: v15 --- src/bin/pg_dump/pg_dump.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 6e1b070e6fa..300fe071fc8 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -5127,8 +5127,6 @@ binary_upgrade_set_pg_class_oids(Archive *fout, "SELECT pg_catalog.binary_upgrade_set_next_index_relfilenode('%u'::pg_catalog.oid);\n", toast_index_relfilenumber); } - - PQclear(upgrade_res); } else { @@ -5141,6 +5139,8 @@ binary_upgrade_set_pg_class_oids(Archive *fout, relfilenumber); } + PQclear(upgrade_res); + appendPQExpBufferChar(upgrade_buffer, '\n'); destroyPQExpBuffer(upgrade_query);