From a7c9f5bedf973dc60de8966ce3e1fd67d83b6187 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Mon, 25 Mar 2019 23:50:43 +0100 Subject: [PATCH 2/4] Check all used executables Expand the validate_exec() calls to cover all the used binaries. --- src/bin/pg_upgrade/exec.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_upgrade/exec.c b/src/bin/pg_upgrade/exec.c index e66170ffdd..f31c9d661a 100644 --- a/src/bin/pg_upgrade/exec.c +++ b/src/bin/pg_upgrade/exec.c @@ -384,6 +384,7 @@ check_bin_dir(ClusterInfo *cluster) cluster->bindir); validate_exec(cluster->bindir, "postgres"); + validate_exec(cluster->bindir, "pg_controldata"); validate_exec(cluster->bindir, "pg_ctl"); /* @@ -398,12 +399,20 @@ check_bin_dir(ClusterInfo *cluster) validate_exec(cluster->bindir, "pg_resetxlog"); else validate_exec(cluster->bindir, "pg_resetwal"); + if (cluster == &new_cluster) { - /* these are only needed in the new cluster */ - validate_exec(cluster->bindir, "psql"); + /* + * These binaries are only needed for the target version. pg_dump and + * pg_dumpall are used to dump the old cluster, but must be of the + * target version. + */ + validate_exec(cluster->bindir, "initdb"); validate_exec(cluster->bindir, "pg_dump"); validate_exec(cluster->bindir, "pg_dumpall"); + validate_exec(cluster->bindir, "pg_restore"); + validate_exec(cluster->bindir, "psql"); + validate_exec(cluster->bindir, "vacuumdb"); } } -- 2.14.1.145.gb3622a4ee