From de48056ec7d237e6a48dce907804ac26c87311ec Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Sun, 6 Apr 2025 15:11:41 -0500 Subject: [PATCH] pg_upgrade: Fix memory leak in check_for_unicode_update(). This function was initializing the "task" variable before a couple of early returns. To fix, postpone the initialization until just before it's needed. Per Coverity. Discussion: https://postgr.es/m/Z_KMsUH2-FEbiNjC%40nathan --- src/bin/pg_upgrade/check.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c index 8f946c4e3d6..18c2d652bb6 100644 --- a/src/bin/pg_upgrade/check.c +++ b/src/bin/pg_upgrade/check.c @@ -1825,7 +1825,7 @@ static void check_for_unicode_update(ClusterInfo *cluster) { UpgradeTaskReport report; - UpgradeTask *task = upgrade_task_create(); + UpgradeTask *task; const char *query; /* @@ -1920,6 +1920,7 @@ check_for_unicode_update(ClusterInfo *cluster) " d.datname = current_database() AND " " d.encoding = pg_char_to_encoding('UTF8');"; + task = upgrade_task_create(); upgrade_task_add_step(task, query, process_unicode_update, true, &report);