From: Bruce Momjian Date: Thu, 12 Feb 2015 03:06:04 +0000 (-0500) Subject: pg_upgrade: quote directory names in delete_old_cluster script X-Git-Tag: REL9_5_ALPHA1~783 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=056764b10248bff702d9d7b8b97690668eaf1c93;p=thirdparty%2Fpostgresql.git pg_upgrade: quote directory names in delete_old_cluster script This allows the delete script to properly function when special characters appear in directory paths, e.g. spaces. Backpatch through 9.0 --- diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c index 87e9031ab4c..6a498c3bd5c 100644 --- a/contrib/pg_upgrade/check.c +++ b/contrib/pg_upgrade/check.c @@ -528,7 +528,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name) #endif /* delete old cluster's default tablespace */ - fprintf(script, RMDIR_CMD " %s\n", fix_path_separator(old_cluster.pgdata)); + fprintf(script, RMDIR_CMD " \"%s\"\n", fix_path_separator(old_cluster.pgdata)); /* delete old cluster's alternate tablespaces */ for (tblnum = 0; tblnum < os_info.num_old_tablespaces; tblnum++) @@ -550,7 +550,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name) PATH_SEPARATOR); for (dbnum = 0; dbnum < old_cluster.dbarr.ndbs; dbnum++) - fprintf(script, RMDIR_CMD " %s%c%d\n", + fprintf(script, RMDIR_CMD " \"%s%c%d\"\n", fix_path_separator(os_info.old_tablespaces[tblnum]), PATH_SEPARATOR, old_cluster.dbarr.dbs[dbnum].db_oid); } @@ -562,7 +562,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name) * Simply delete the tablespace directory, which might be ".old" * or a version-specific subdirectory. */ - fprintf(script, RMDIR_CMD " %s%s\n", + fprintf(script, RMDIR_CMD " \"%s%s\"\n", fix_path_separator(os_info.old_tablespaces[tblnum]), fix_path_separator(suffix_path)); pfree(suffix_path);