Skip to content

Commit c06b721

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 62eff5a commit c06b721

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/bin/initdb/initdb.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,7 +1330,7 @@ bootstrap_template1(void)
13301330
unsetenv("PGCLIENTENCODING");
13311331

13321332
snprintf(cmd, sizeof(cmd),
1333-
"\"%s\" --boot -x1 %s %s",
1333+
SYSTEMQUOTE "\"%s\" --boot -x1 %s %s" SYSTEMQUOTE,
13341334
backend_exec, boot_options, talkargs);
13351335

13361336
PG_CMD_OPEN;
@@ -1369,7 +1369,7 @@ setup_auth(void)
13691369
fflush(stdout);
13701370

13711371
snprintf(cmd, sizeof(cmd),
1372-
"\"%s\" %s template1 >%s",
1372+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
13731373
backend_exec, backend_options,
13741374
DEVNULL);
13751375

@@ -1447,7 +1447,7 @@ get_set_pwd(void)
14471447
fflush(stdout);
14481448

14491449
snprintf(cmd, sizeof(cmd),
1450-
"\"%s\" %s template1 >%s",
1450+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
14511451
backend_exec, backend_options,
14521452
DEVNULL);
14531453

@@ -1545,7 +1545,7 @@ setup_depend(void)
15451545
fflush(stdout);
15461546

15471547
snprintf(cmd, sizeof(cmd),
1548-
"\"%s\" %s template1 >%s",
1548+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
15491549
backend_exec, backend_options,
15501550
DEVNULL);
15511551

@@ -1578,7 +1578,7 @@ setup_sysviews(void)
15781578
* We use -j here to avoid backslashing stuff in system_views.sql
15791579
*/
15801580
snprintf(cmd, sizeof(cmd),
1581-
"\"%s\" %s -j template1 >%s",
1581+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
15821582
backend_exec, backend_options,
15831583
DEVNULL);
15841584

@@ -1609,7 +1609,7 @@ setup_description(void)
16091609
fflush(stdout);
16101610

16111611
snprintf(cmd, sizeof(cmd),
1612-
"\"%s\" %s template1 >%s",
1612+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
16131613
backend_exec, backend_options,
16141614
DEVNULL);
16151615

@@ -1661,7 +1661,7 @@ setup_conversion(void)
16611661
fflush(stdout);
16621662

16631663
snprintf(cmd, sizeof(cmd),
1664-
"\"%s\" %s template1 >%s",
1664+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
16651665
backend_exec, backend_options,
16661666
DEVNULL);
16671667

@@ -1699,7 +1699,7 @@ setup_dictionary(void)
16991699
* We use -j here to avoid backslashing stuff
17001700
*/
17011701
snprintf(cmd, sizeof(cmd),
1702-
"\"%s\" %s -j template1 >%s",
1702+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
17031703
backend_exec, backend_options,
17041704
DEVNULL);
17051705

@@ -1750,7 +1750,7 @@ setup_privileges(void)
17501750
fflush(stdout);
17511751

17521752
snprintf(cmd, sizeof(cmd),
1753-
"\"%s\" %s template1 >%s",
1753+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
17541754
backend_exec, backend_options,
17551755
DEVNULL);
17561756

@@ -1813,7 +1813,7 @@ setup_schema(void)
18131813
* We use -j here to avoid backslashing stuff in information_schema.sql
18141814
*/
18151815
snprintf(cmd, sizeof(cmd),
1816-
"\"%s\" %s -j template1 >%s",
1816+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
18171817
backend_exec, backend_options,
18181818
DEVNULL);
18191819

@@ -1830,7 +1830,7 @@ setup_schema(void)
18301830
PG_CMD_CLOSE;
18311831

18321832
snprintf(cmd, sizeof(cmd),
1833-
"\"%s\" %s template1 >%s",
1833+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18341834
backend_exec, backend_options,
18351835
DEVNULL);
18361836

@@ -1864,7 +1864,7 @@ load_plpgsql(void)
18641864
fflush(stdout);
18651865

18661866
snprintf(cmd, sizeof(cmd),
1867-
"\"%s\" %s template1 >%s",
1867+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18681868
backend_exec, backend_options,
18691869
DEVNULL);
18701870

@@ -1889,7 +1889,7 @@ vacuum_db(void)
18891889
fflush(stdout);
18901890

18911891
snprintf(cmd, sizeof(cmd),
1892-
"\"%s\" %s template1 >%s",
1892+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18931893
backend_exec, backend_options,
18941894
DEVNULL);
18951895

@@ -1943,7 +1943,7 @@ make_template0(void)
19431943
fflush(stdout);
19441944

19451945
snprintf(cmd, sizeof(cmd),
1946-
"\"%s\" %s template1 >%s",
1946+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19471947
backend_exec, backend_options,
19481948
DEVNULL);
19491949

@@ -1974,7 +1974,7 @@ make_postgres(void)
19741974
fflush(stdout);
19751975

19761976
snprintf(cmd, sizeof(cmd),
1977-
"\"%s\" %s template1 >%s",
1977+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19781978
backend_exec, backend_options,
19791979
DEVNULL);
19801980

0 commit comments

Comments
 (0)