]> 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:36:41 +0000 (10:36 +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.

contrib/pg_upgrade/check.c
src/bin/initdb/initdb.c

index e6d86ba7b9d8d5d4573a70ee905bbee6c9c89909..4a0e69ef471ea5e4aa56323264946aa3caf7ac14 100644 (file)
@@ -810,7 +810,7 @@ get_bin_version(ClusterInfo *cluster)
        FILE       *output;
        int                     pre_dot, post_dot;
 
-       snprintf(cmd, sizeof(cmd), "\"%s/pg_ctl\" --version", cluster->bindir);
+       snprintf(cmd, sizeof(cmd), SYSTEMQUOTE "\"%s/pg_ctl\" --version" SYSTEMQUOTE, cluster->bindir);
 
        if ((output = popen(cmd, "r")) == NULL)
                pg_log(PG_FATAL, "Could not get pg_ctl version data: %s\n",
index 9bc3e2364e99f0ed2b7c3c2302e431d0b6eabc7a..65fb4db00469100bcb2c09a28d32feae68092843 100644 (file)
@@ -1192,7 +1192,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;
@@ -1231,7 +1231,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);
 
@@ -1309,7 +1309,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);
 
@@ -1409,7 +1409,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);
 
@@ -1442,7 +1442,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);
 
@@ -1473,7 +1473,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);
 
@@ -1580,7 +1580,7 @@ setup_collation(void)
 
 #if defined(HAVE_LOCALE_T) && !defined(WIN32)
        snprintf(cmd, sizeof(cmd),
-                        "\"%s\" %s template1 >%s",
+                        SYSTEMQUOTE "\"%s\" %s template1 >%s" SYSTEMQUOTE,
                         backend_exec, backend_options,
                         DEVNULL);
 
@@ -1719,7 +1719,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);
 
@@ -1757,7 +1757,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);
 
@@ -1808,7 +1808,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);
 
@@ -1871,7 +1871,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);
 
@@ -1888,7 +1888,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);
 
@@ -1922,7 +1922,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);
 
@@ -1947,7 +1947,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);
 
@@ -2003,7 +2003,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);
 
@@ -2035,7 +2035,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);