Commit 9684e426 authored by Peter Eisentraut's avatar Peter Eisentraut

Error out on too many command-line arguments

Fix up oid2name, pg_upgrade, and pgbench to error out on too many
command-line arguments.  This makes it match the behavior of other
PostgreSQL programs.

Author: Peter Eisentraut, Ibrar Ahmed
Discussion: https://www.postgresql.org/message-id/flat/f2554627-04e7-383a-ef01-ab99bb6a291c%402ndquadrant.com
parent 317b3d7a
...@@ -185,6 +185,14 @@ get_opts(int argc, char **argv, struct options *my_opts) ...@@ -185,6 +185,14 @@ get_opts(int argc, char **argv, struct options *my_opts)
exit(1); exit(1);
} }
} }
if (optind < argc)
{
fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
progname, argv[optind]);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1);
}
} }
static void static void
......
...@@ -218,6 +218,9 @@ parseCommandLine(int argc, char *argv[]) ...@@ -218,6 +218,9 @@ parseCommandLine(int argc, char *argv[])
} }
} }
if (optind < argc)
pg_fatal("too many command-line arguments (first is \"%s\")\n", argv[optind]);
if ((log_opts.internal = fopen_priv(INTERNAL_LOG_FILE, "a")) == NULL) if ((log_opts.internal = fopen_priv(INTERNAL_LOG_FILE, "a")) == NULL)
pg_fatal("could not open log file \"%s\": %m\n", INTERNAL_LOG_FILE); pg_fatal("could not open log file \"%s\": %m\n", INTERNAL_LOG_FILE);
......
...@@ -5540,7 +5540,7 @@ main(int argc, char **argv) ...@@ -5540,7 +5540,7 @@ main(int argc, char **argv)
throttle_delay *= nthreads; throttle_delay *= nthreads;
if (argc > optind) if (argc > optind)
dbName = argv[optind]; dbName = argv[optind++];
else else
{ {
if ((env = getenv("PGDATABASE")) != NULL && *env != '\0') if ((env = getenv("PGDATABASE")) != NULL && *env != '\0')
...@@ -5551,6 +5551,14 @@ main(int argc, char **argv) ...@@ -5551,6 +5551,14 @@ main(int argc, char **argv)
dbName = ""; dbName = "";
} }
if (optind < argc)
{
fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
progname, argv[optind]);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
exit(1);
}
if (is_init_mode) if (is_init_mode)
{ {
if (benchmarking_option_set) if (benchmarking_option_set)
......
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