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)
This commit is contained in:
Zhenlei Huang 2025-01-29 18:00:07 +08:00
parent 2a777f2030
commit 99bcb54d8d

View file

@ -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);