From e6fc3b70df906868df36517c2c7c5a38725e1451 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 cf34bfdba80..4ac992f7dbd 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -4980,8 +4980,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_relfilenode); } - - PQclear(upgrade_res); } else { @@ -4994,6 +4992,8 @@ binary_upgrade_set_pg_class_oids(Archive *fout, relfilenode); } + PQclear(upgrade_res); + appendPQExpBufferChar(upgrade_buffer, '\n'); destroyPQExpBuffer(upgrade_query);