]> granicus.if.org Git - postgresql/commitdiff
Complain if too many options are passed to pg_controldata or pg_resetxlog.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 24 Oct 2014 15:59:08 +0000 (18:59 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 24 Oct 2014 16:15:57 +0000 (19:15 +0300)
src/bin/pg_controldata/pg_controldata.c
src/bin/pg_resetxlog/pg_resetxlog.c

index dd68f793c3d032e9dc17cb11974a0f270e4fc67e..d0cf039f42a7ee6ad17b79d1abf70eb15f571e03 100644 (file)
@@ -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);
index 028a1f05665972219b1686c548f6097fbe05e3f1..f4c1eafc67cbfc8f735b031de505fdec55103418 100644 (file)
@@ -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