Skip to content

Commit e3f273f

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 be24942 commit e3f273f

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

src/bin/initdb/initdb.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,7 +1369,7 @@ bootstrap_template1(char *short_version)
13691369
unsetenv("PGCLIENTENCODING");
13701370

13711371
snprintf(cmd, sizeof(cmd),
1372-
"\"%s\" --boot -x1 %s %s",
1372+
SYSTEMQUOTE "\"%s\" --boot -x1 %s %s" SYSTEMQUOTE,
13731373
backend_exec, boot_options, talkargs);
13741374

13751375
PG_CMD_OPEN;
@@ -1422,7 +1422,7 @@ setup_auth(void)
14221422
fflush(stdout);
14231423

14241424
snprintf(cmd, sizeof(cmd),
1425-
"\"%s\" %s template1 >%s",
1425+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
14261426
backend_exec, backend_options,
14271427
DEVNULL);
14281428

@@ -1502,7 +1502,7 @@ get_set_pwd(void)
15021502
fflush(stdout);
15031503

15041504
snprintf(cmd, sizeof(cmd),
1505-
"\"%s\" %s template1 >%s",
1505+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
15061506
backend_exec, backend_options,
15071507
DEVNULL);
15081508

@@ -1610,7 +1610,7 @@ setup_depend(void)
16101610
fflush(stdout);
16111611

16121612
snprintf(cmd, sizeof(cmd),
1613-
"\"%s\" %s template1 >%s",
1613+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
16141614
backend_exec, backend_options,
16151615
DEVNULL);
16161616

@@ -1643,7 +1643,7 @@ setup_sysviews(void)
16431643
* We use -j here to avoid backslashing stuff in system_views.sql
16441644
*/
16451645
snprintf(cmd, sizeof(cmd),
1646-
"\"%s\" %s -j template1 >%s",
1646+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
16471647
backend_exec, backend_options,
16481648
DEVNULL);
16491649

@@ -1674,7 +1674,7 @@ setup_description(void)
16741674
fflush(stdout);
16751675

16761676
snprintf(cmd, sizeof(cmd),
1677-
"\"%s\" %s template1 >%s",
1677+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
16781678
backend_exec, backend_options,
16791679
DEVNULL);
16801680

@@ -1726,7 +1726,7 @@ setup_conversion(void)
17261726
fflush(stdout);
17271727

17281728
snprintf(cmd, sizeof(cmd),
1729-
"\"%s\" %s template1 >%s",
1729+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
17301730
backend_exec, backend_options,
17311731
DEVNULL);
17321732

@@ -1764,7 +1764,7 @@ setup_dictionary(void)
17641764
* We use -j here to avoid backslashing stuff
17651765
*/
17661766
snprintf(cmd, sizeof(cmd),
1767-
"\"%s\" %s -j template1 >%s",
1767+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
17681768
backend_exec, backend_options,
17691769
DEVNULL);
17701770

@@ -1814,7 +1814,7 @@ setup_privileges(void)
18141814
fflush(stdout);
18151815

18161816
snprintf(cmd, sizeof(cmd),
1817-
"\"%s\" %s template1 >%s",
1817+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18181818
backend_exec, backend_options,
18191819
DEVNULL);
18201820

@@ -1877,7 +1877,7 @@ setup_schema(void)
18771877
* We use -j here to avoid backslashing stuff in information_schema.sql
18781878
*/
18791879
snprintf(cmd, sizeof(cmd),
1880-
"\"%s\" %s -j template1 >%s",
1880+
SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
18811881
backend_exec, backend_options,
18821882
DEVNULL);
18831883

@@ -1894,7 +1894,7 @@ setup_schema(void)
18941894
PG_CMD_CLOSE;
18951895

18961896
snprintf(cmd, sizeof(cmd),
1897-
"\"%s\" %s template1 >%s",
1897+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
18981898
backend_exec, backend_options,
18991899
DEVNULL);
19001900

@@ -1928,7 +1928,7 @@ vacuum_db(void)
19281928
fflush(stdout);
19291929

19301930
snprintf(cmd, sizeof(cmd),
1931-
"\"%s\" %s template1 >%s",
1931+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19321932
backend_exec, backend_options,
19331933
DEVNULL);
19341934

@@ -1982,7 +1982,7 @@ make_template0(void)
19821982
fflush(stdout);
19831983

19841984
snprintf(cmd, sizeof(cmd),
1985-
"\"%s\" %s template1 >%s",
1985+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
19861986
backend_exec, backend_options,
19871987
DEVNULL);
19881988

@@ -2013,7 +2013,7 @@ make_postgres(void)
20132013
fflush(stdout);
20142014

20152015
snprintf(cmd, sizeof(cmd),
2016-
"\"%s\" %s template1 >%s",
2016+
SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
20172017
backend_exec, backend_options,
20182018
DEVNULL);
20192019

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