Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Sort out paired double quotes in \connect, \password and \crosstabview.
authorNoah Misch <noah@leadboat.com>
Mon, 8 Aug 2016 14:07:46 +0000 (10:07 -0400)
committerNoah Misch <noah@leadboat.com>
Mon, 8 Aug 2016 14:07:50 +0000 (10:07 -0400)
In arguments, these meta-commands wrongly treated each pair as closing
the double quoted string.  Make the behavior match the documentation.
This is a compatibility break, but I more expect to find software with
untested reliance on the documented behavior than software reliant on
today's behavior.  Back-patch to 9.1 (all supported versions).

Reviewed by Tom Lane and Peter Eisentraut.

Security: CVE-2016-5424

src/bin/psql/psqlscan.l

index be059abd8d9f8cdc8552ad35077355c4402ed326..dc727f7b71a7cb289efeed6e8c37f9f1506a5ef0 100644 (file)
@@ -1605,7 +1605,8 @@ psql_scan_slash_option(PsqlScanState state,
                            /* Keep the first quote, remove the second */
                            cp++;
                        }
-                       inquotes = !inquotes;
+                       else
+                           inquotes = !inquotes;
                        /* Collapse out quote at *cp */
                        memmove(cp, cp + 1, strlen(cp));
                        mybuf.len--;