Commit 832b6d00 authored by Bruce Momjian's avatar Bruce Momjian

Properly enforce pg_dump -F formation options; only single letter or

full words support, per report from Mark Stosberg.
parent 8f65c02f
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* by PostgreSQL * by PostgreSQL
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.461 2007/03/19 23:38:30 wieck Exp $ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.462 2007/03/22 19:42:02 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -476,36 +476,31 @@ main(int argc, char **argv) ...@@ -476,36 +476,31 @@ main(int argc, char **argv)
} }
/* open the output file */ /* open the output file */
switch (format[0]) if (strcasecmp(format, "a") == 0 || strcasecmp(format, "append") == 0)
{ {
case 'a': /* not documented */
case 'A':
plainText = 1; plainText = 1;
g_fout = CreateArchive(filename, archNull, 0, archModeAppend); g_fout = CreateArchive(filename, archNull, 0, archModeAppend);
break; }
else if (strcasecmp(format, "c") == 0 || strcasecmp(format, "custom") == 0)
case 'c':
case 'C':
g_fout = CreateArchive(filename, archCustom, compressLevel, archModeWrite); g_fout = CreateArchive(filename, archCustom, compressLevel, archModeWrite);
break; else if (strcasecmp(format, "f") == 0 || strcasecmp(format, "file") == 0)
{
case 'f': /*
case 'F': * Dump files into the current directory; for demonstration only, not
* documented.
*/
g_fout = CreateArchive(filename, archFiles, compressLevel, archModeWrite); g_fout = CreateArchive(filename, archFiles, compressLevel, archModeWrite);
break; }
else if (strcasecmp(format, "p") == 0 || strcasecmp(format, "plain") == 0)
case 'p': {
case 'P':
plainText = 1; plainText = 1;
g_fout = CreateArchive(filename, archNull, 0, archModeWrite); g_fout = CreateArchive(filename, archNull, 0, archModeWrite);
break; }
else if (strcasecmp(format, "t") == 0 || strcasecmp(format, "tar") == 0)
case 't':
case 'T':
g_fout = CreateArchive(filename, archTar, compressLevel, archModeWrite); g_fout = CreateArchive(filename, archTar, compressLevel, archModeWrite);
break; else
{
default:
write_msg(NULL, "invalid output format \"%s\" specified\n", format); write_msg(NULL, "invalid output format \"%s\" specified\n", format);
exit(1); exit(1);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment