diff options
author | Alexey Perevalov <a.perevalov@samsung.com> | 2014-09-12 14:56:57 +0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-09-15 15:55:04 +0200 |
commit | 03e1435e7aef2cbfe49843e24b659c66a96b5735 (patch) | |
tree | d4418cc1ebf36329c3bf0ac9c88bf77a0a815683 /src | |
parent | 42d6f393cee3b6fd5b69cd773962973ebb99452e (diff) |
nfacct: check cmd line argument for singleness
It was possible to specify several equal options for list operation.
Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/nfacct.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nfacct.c b/src/nfacct.c index 091a5c9..e58b9af 100644 --- a/src/nfacct.c +++ b/src/nfacct.c @@ -63,6 +63,13 @@ static void nfacct_perror(const char *msg) } } +static void duparg(const char *key) +{ + fprintf(stderr, "Error: duplicate \"%s\" or collision with another " + "option \n", key); + exit(EXIT_FAILURE); +} + int main(int argc, char *argv[]) { int cmd = NFACCT_CMD_NONE, ret = 0; @@ -177,8 +184,12 @@ static int nfacct_cmd_list(int argc, char *argv[]) for (i=2; i<argc; i++) { if (strncmp(argv[i], "reset", strlen(argv[i])) == 0) { + if (zeroctr) + duparg(argv[i]); zeroctr = true; } else if (strncmp(argv[i], "xml", strlen(argv[i])) == 0) { + if (xml) + duparg(argv[i]); xml = true; } else { nfacct_perror("unknown argument"); |