From a8f87d5d21c2f3ddd644c9cb313ecd43290a446e 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 ac920f64c73..5dfa7b3bcba 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -5479,8 +5479,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 { @@ -5493,6 +5491,8 @@ binary_upgrade_set_pg_class_oids(Archive *fout, relfilenumber); } + PQclear(upgrade_res); + appendPQExpBufferChar(upgrade_buffer, '\n'); destroyPQExpBuffer(upgrade_query);