]> granicus.if.org Git - postgresql/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:38:32 +0000 (10:38 +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 855b81e24c37c1948ea37fa5b247bc66074ef765..a22eaba30e5212b19183dc55a1e5d35819e5805f 100644 (file)
@@ -1330,7 +1330,7 @@ bootstrap_template1(void)
        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;
@@ -1369,7 +1369,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);
 
@@ -1447,7 +1447,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);
 
@@ -1545,7 +1545,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);
 
@@ -1578,7 +1578,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);
 
@@ -1609,7 +1609,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);
 
@@ -1661,7 +1661,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);
 
@@ -1699,7 +1699,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);
 
@@ -1750,7 +1750,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);
 
@@ -1813,7 +1813,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);
 
@@ -1830,7 +1830,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);
 
@@ -1864,7 +1864,7 @@ load_plpgsql(void)
        fflush(stdout);
 
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1889,7 +1889,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);
 
@@ -1943,7 +1943,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);
 
@@ -1974,7 +1974,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);