summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexey Perevalov <a.perevalov@samsung.com>2014-09-12 14:56:57 +0400
committerPablo Neira Ayuso <pablo@netfilter.org>2014-09-15 15:55:04 +0200
commit03e1435e7aef2cbfe49843e24b659c66a96b5735 (patch)
treed4418cc1ebf36329c3bf0ac9c88bf77a0a815683 /src
parent42d6f393cee3b6fd5b69cd773962973ebb99452e (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.c11
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");