diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c index dd68f793c3d032e9dc17cb11974a0f270e4fc67e..d0cf039f42a7ee6ad17b79d1abf70eb15f571e03 100644 --- a/src/bin/pg_controldata/pg_controldata.c +++ b/src/bin/pg_controldata/pg_controldata.c @@ -142,6 +142,16 @@ main(int argc, char *argv[]) DataDir = getenv("PGDATA"); } + /* Complain if any arguments remain */ + 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 (DataDir == NULL) { fprintf(stderr, _("%s: no data directory specified\n"), progname); diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c index 028a1f05665972219b1686c548f6097fbe05e3f1..f4c1eafc67cbfc8f735b031de505fdec55103418 100644 --- a/src/bin/pg_resetxlog/pg_resetxlog.c +++ b/src/bin/pg_resetxlog/pg_resetxlog.c @@ -237,14 +237,25 @@ main(int argc, char *argv[]) } } - if (DataDir == NULL && optind == argc) + if (DataDir == NULL && optind < argc) + DataDir = argv[optind++]; + + /* Complain if any arguments remain */ + 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 (DataDir == NULL) { fprintf(stderr, _("%s: no data directory specified\n"), progname); fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); exit(1); } - if (DataDir == NULL) - DataDir = argv[optind]; /* * Don't allow pg_resetxlog to be run as root, to avoid overwriting the