diff options
author | Vincent Bernat <vincent@bernat.im> | 2017-04-15 12:16:47 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-04-19 18:00:41 +0200 |
commit | d89dc47ab3875f6fe6679cebceccd2000bf81b8e (patch) | |
tree | fe990365c13f083b184ccb8933cf9489577aa87b /iptables/ip6tables-restore.c | |
parent | 65801d02a482befd2745c792d6596ec75d434934 (diff) |
iptables-restore/save: exit when given an unknown option
When an unknown option is given, iptables-restore should exit instead of
continue its operation. For example, if `--table` was misspelled, this
could lead to an unwanted change. Moreover, exit with a status code of
1. Make the same change for iptables-save.
OTOH, exit with a status code of 0 when requesting help.
Signed-off-by: Vincent Bernat <vincent@bernat.im>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'iptables/ip6tables-restore.c')
-rw-r--r-- | iptables/ip6tables-restore.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/iptables/ip6tables-restore.c b/iptables/ip6tables-restore.c index 419a2b0e..39a881df 100644 --- a/iptables/ip6tables-restore.c +++ b/iptables/ip6tables-restore.c @@ -47,8 +47,6 @@ static const struct option options[] = { {NULL}, }; -static void print_usage(const char *name, const char *version) __attribute__((noreturn)); - #define prog_name ip6tables_globals.program_name #define prog_vers ip6tables_globals.program_version @@ -65,8 +63,6 @@ static void print_usage(const char *name, const char *version) " [ --wait-interval=<usecs>\n" " [ --table=<TABLE> ]\n" " [ --modprobe=<command> ]\n", name); - - exit(1); } static struct xtc_handle *create_handle(const char *tablename) @@ -237,7 +233,7 @@ int ip6tables_restore_main(int argc, char *argv[]) case 'h': print_usage("ip6tables-restore", IPTABLES_VERSION); - break; + exit(0); case 'n': noflush = 1; break; @@ -253,6 +249,10 @@ int ip6tables_restore_main(int argc, char *argv[]) case 'T': tablename = optarg; break; + default: + fprintf(stderr, + "Try `ip6tables-restore -h' for more information.\n"); + exit(1); } } |