Skip to content

Commit 94095e3

Browse files
committed
Add missing SYSTEMQUOTEs
Some popen() calls were missing SYSTEMQUOTEs, which caused initdb and pg_upgrade to fail on Windows, if the installation path contained both spaces and @ signs. Patch by Nikhil Deshpande. Backpatch to all supported versions.
1 parent 9bc70b1 commit 94095e3

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

contrib/pg_upgrade/check.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ get_bin_version(ClusterInfo *cluster)
810810
FILE *output;
811811
int pre_dot, post_dot;
812812

813-
snprintf(cmd, sizeof(cmd), "\"%s/pg_ctl\" --version", cluster->bindir);
813+
snprintf(cmd, sizeof(cmd), SYSTEMQUOTE "\"%s/pg_ctl\" --version" SYSTEMQUOTE, cluster->bindir);
814814

815815
if ((output = popen(cmd, "r")) == NULL)
816816
pg_log(PG_FATAL, "Could not get pg_ctl version data: %s\n",

src/bin/initdb/initdb.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ bootstrap_template1(void)
11921192
unsetenv("PGCLIENTENCODING");
11931193

11941194
snprintf(cmd, sizeof(cmd),
1195-
"\"%s\" --boot -x1 %s %s",
1195+
SYSTEMQUOTE "\"%s\" --boot -x1 %s %s" SYSTEMQUOTE,
11961196
backend_exec, boot_options, talkargs);
11971197

11981198
PG_CMD_OPEN;
@@ -1231,7 +1231,7 @@ setup_auth(void)
12311231
fflush(stdout);
12321232

12331233
snprintf(cmd, sizeof(cmd),
1234-
"\"%s\" %s template1 >%s",
1234+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
12351235
backend_exec, backend_options,
12361236
DEVNULL);
12371237

@@ -1309,7 +1309,7 @@ get_set_pwd(void)
13091309
fflush(stdout);
13101310

13111311
snprintf(cmd, sizeof(cmd),
1312-
"\"%s\" %s template1 >%s",
1312+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
13131313
backend_exec, backend_options,
13141314
DEVNULL);
13151315

@@ -1409,7 +1409,7 @@ setup_depend(void)
14091409
fflush(stdout);
14101410

14111411
snprintf(cmd, sizeof(cmd),
1412-
"\"%s\" %s template1 >%s",
1412+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
14131413
backend_exec, backend_options,
14141414
DEVNULL);
14151415

@@ -1442,7 +1442,7 @@ setup_sysviews(void)
14421442
* We use -j here to avoid backslashing stuff in system_views.sql
14431443
*/
14441444
snprintf(cmd, sizeof(cmd),
1445-
"\"%s\" %s -j template1 >%s",
1445+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
14461446
backend_exec, backend_options,
14471447
DEVNULL);
14481448

@@ -1473,7 +1473,7 @@ setup_description(void)
14731473
fflush(stdout);
14741474

14751475
snprintf(cmd, sizeof(cmd),
1476-
"\"%s\" %s template1 >%s",
1476+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
14771477
backend_exec, backend_options,
14781478
DEVNULL);
14791479

@@ -1580,7 +1580,7 @@ setup_collation(void)
15801580

15811581
#if defined(HAVE_LOCALE_T) && !defined(WIN32)
15821582
snprintf(cmd, sizeof(cmd),
1583-
"\"%s\" %s template1 >%s",
1583+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
15841584
backend_exec, backend_options,
15851585
DEVNULL);
15861586

@@ -1719,7 +1719,7 @@ setup_conversion(void)
17191719
fflush(stdout);
17201720

17211721
snprintf(cmd, sizeof(cmd),
1722-
"\"%s\" %s template1 >%s",
1722+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
17231723
backend_exec, backend_options,
17241724
DEVNULL);
17251725

@@ -1757,7 +1757,7 @@ setup_dictionary(void)
17571757
* We use -j here to avoid backslashing stuff
17581758
*/
17591759
snprintf(cmd, sizeof(cmd),
1760-
"\"%s\" %s -j template1 >%s",
1760+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
17611761
backend_exec, backend_options,
17621762
DEVNULL);
17631763

@@ -1808,7 +1808,7 @@ setup_privileges(void)
18081808
fflush(stdout);
18091809

18101810
snprintf(cmd, sizeof(cmd),
1811-
"\"%s\" %s template1 >%s",
1811+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18121812
backend_exec, backend_options,
18131813
DEVNULL);
18141814

@@ -1871,7 +1871,7 @@ setup_schema(void)
18711871
* We use -j here to avoid backslashing stuff in information_schema.sql
18721872
*/
18731873
snprintf(cmd, sizeof(cmd),
1874-
"\"%s\" %s -j template1 >%s",
1874+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
18751875
backend_exec, backend_options,
18761876
DEVNULL);
18771877

@@ -1888,7 +1888,7 @@ setup_schema(void)
18881888
PG_CMD_CLOSE;
18891889

18901890
snprintf(cmd, sizeof(cmd),
1891-
"\"%s\" %s template1 >%s",
1891+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18921892
backend_exec, backend_options,
18931893
DEVNULL);
18941894

@@ -1922,7 +1922,7 @@ load_plpgsql(void)
19221922
fflush(stdout);
19231923

19241924
snprintf(cmd, sizeof(cmd),
1925-
"\"%s\" %s template1 >%s",
1925+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19261926
backend_exec, backend_options,
19271927
DEVNULL);
19281928

@@ -1947,7 +1947,7 @@ vacuum_db(void)
19471947
fflush(stdout);
19481948

19491949
snprintf(cmd, sizeof(cmd),
1950-
"\"%s\" %s template1 >%s",
1950+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19511951
backend_exec, backend_options,
19521952
DEVNULL);
19531953

@@ -2003,7 +2003,7 @@ make_template0(void)
20032003
fflush(stdout);
20042004

20052005
snprintf(cmd, sizeof(cmd),
2006-
"\"%s\" %s template1 >%s",
2006+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
20072007
backend_exec, backend_options,
20082008
DEVNULL);
20092009

@@ -2035,7 +2035,7 @@ make_postgres(void)
20352035
fflush(stdout);
20362036

20372037
snprintf(cmd, sizeof(cmd),
2038-
"\"%s\" %s template1 >%s",
2038+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
20392039
backend_exec, backend_options,
20402040
DEVNULL);
20412041

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy