aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenlei Huang <zlei@FreeBSD.org>2025-01-29 10:00:07 +0000
committerZhenlei Huang <zlei@FreeBSD.org>2025-01-29 10:00:07 +0000
commit13ce55b66fad2b2b4054a89a1a906f58dc33683b (patch)
tree233a78bee37c5a33cba97af0ac6bfe5a1851d780
parent0078df5f025854600595462e56fa95d34e732141 (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.c10
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);