]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add missing SYSTEMQUOTEs
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 30 Apr 2014 07:34:15 +0000 (10:34 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 30 Apr 2014 07:39:03 +0000 (10:39 +0300)
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.

src/bin/initdb/initdb.c

index 4ddd94e3bba1fa7d559ab4828143189e6a2ceeef..1084267c7725dacf6a463a7cbe5ecbc72b497ef7 100644 (file)
@@ -1369,7 +1369,7 @@ bootstrap_template1(char *short_version)
        unsetenv("PGCLIENTENCODING");
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" --boot -x1 %s %s",
+                        SYSTEMQUOTE "\"%s\" --boot -x1 %s %s" SYSTEMQUOTE,
                         backend_exec, boot_options, talkargs);
 
        PG_CMD_OPEN;
@@ -1422,7 +1422,7 @@ setup_auth(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1502,7 +1502,7 @@ get_set_pwd(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1610,7 +1610,7 @@ setup_depend(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1643,7 +1643,7 @@ setup_sysviews(void)
         * We use -j here to avoid backslashing stuff in system_views.sql
         */
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s -j template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1674,7 +1674,7 @@ setup_description(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1726,7 +1726,7 @@ setup_conversion(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1764,7 +1764,7 @@ setup_dictionary(void)
         * We use -j here to avoid backslashing stuff
         */
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s -j template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1814,7 +1814,7 @@ setup_privileges(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1877,7 +1877,7 @@ setup_schema(void)
         * We use -j here to avoid backslashing stuff in information_schema.sql
         */
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s -j template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s -j template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1894,7 +1894,7 @@ setup_schema(void)
        PG_CMD_CLOSE;
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1928,7 +1928,7 @@ vacuum_db(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1982,7 +1982,7 @@ make_template0(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -2013,7 +2013,7 @@ make_postgres(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);