aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenlei Huang <zlei@FreeBSD.org>2025-01-29 10:00:07 +0000
committerZhenlei Huang <zlei@FreeBSD.org>2025-02-06 16:08:52 +0000
commitfd28738611234b5f65967d3f69235a107f64a726 (patch)
tree86b789f35108b2b2e5419b88adc7c6ba53f2e7fd
parent00db5c7152e858aa010feb0f6c981d0cfd5f40ea (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 (cherry picked from commit 13ce55b66fad2b2b4054a89a1a906f58dc33683b) (cherry picked from commit 99bcb54d8d9138480001a262f080b7e8b0c24f58)
-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 8cb4f05cc0a8..248d398964a0 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);