diff options
author | Zhenlei Huang <zlei@FreeBSD.org> | 2025-01-29 10:00:07 +0000 |
---|---|---|
committer | Zhenlei Huang <zlei@FreeBSD.org> | 2025-01-29 10:00:07 +0000 |
commit | 13ce55b66fad2b2b4054a89a1a906f58dc33683b (patch) | |
tree | 233a78bee37c5a33cba97af0ac6bfe5a1851d780 | |
parent | 0078df5f025854600595462e56fa95d34e732141 (diff) |
ip6addrctl(8): Strictly check the number of arguments
The additional arguments are useless but may tempt user a wrong usage.
Reviewed by: dfr
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D48701
-rw-r--r-- | usr.sbin/ip6addrctl/ip6addrctl.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/ip6addrctl/ip6addrctl.c b/usr.sbin/ip6addrctl/ip6addrctl.c index 146b2f1ad3e0..dd5df48048aa 100644 --- a/usr.sbin/ip6addrctl/ip6addrctl.c +++ b/usr.sbin/ip6addrctl/ip6addrctl.c @@ -75,22 +75,24 @@ static void flush_policy(void); int main(int argc, char *argv[]) { - if (argc == 1 || strcasecmp(argv[1], "show") == 0) { + if (argc == 1 || (argc == 2 && strcasecmp(argv[1], "show") == 0)) { get_policy(); dump_policy(); } else if (strcasecmp(argv[1], "add") == 0) { - if (argc < 5) + if (argc != 5) usage(); add_policy(argv[2], argv[3], argv[4]); } else if (strcasecmp(argv[1], "delete") == 0) { - if (argc < 3) + if (argc != 3) usage(); delete_policy(argv[2]); } else if (strcasecmp(argv[1], "flush") == 0) { + if (argc != 2) + usage(); get_policy(); flush_policy(); } else if (strcasecmp(argv[1], "install") == 0) { - if (argc < 3) + if (argc != 3) usage(); configfile = argv[2]; make_policy_fromfile(configfile); |