diff options
author | adrian <adrian@FreeBSD.org> | 2013-04-22 05:30:20 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2013-04-22 05:30:20 +0000 |
commit | d7b15c7958aa79252071abde38d22cb8252dd849 (patch) | |
tree | c2266166dc36d1dc7f6c5c12c6e82e8b771c6249 /sbin/etherswitchcfg | |
parent | 13b5f44804e74c0740d22aa1e2f1fbbda1d19278 (diff) | |
download | FreeBSD-src-d7b15c7958aa79252071abde38d22cb8252dd849.zip FreeBSD-src-d7b15c7958aa79252071abde38d22cb8252dd849.tar.gz |
etherswitchcfg(8) crashes when you don't set vlangroup members.
Fix this to require an argument.
PR: kern/177872
Submitted by: Luiz Otavio O Souza <loos.br@gmail.com>
Diffstat (limited to 'sbin/etherswitchcfg')
-rw-r--r-- | sbin/etherswitchcfg/etherswitchcfg.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sbin/etherswitchcfg/etherswitchcfg.c b/sbin/etherswitchcfg/etherswitchcfg.c index b7ee02c..a3f286e 100644 --- a/sbin/etherswitchcfg/etherswitchcfg.c +++ b/sbin/etherswitchcfg/etherswitchcfg.c @@ -467,8 +467,11 @@ main(int argc, char *argv[]) case MODE_PORT: case MODE_VLANGROUP: for(i=0; cmds[i].name != NULL; i++) { - if (cfg.mode == cmds[i].mode && strcmp(argv[0], cmds[i].name) == 0 - && argc >= cmds[i].args) { + if (cfg.mode == cmds[i].mode && strcmp(argv[0], cmds[i].name) == 0) { + if (argc < (cmds[i].args + 1)) { + printf("%s needs an argument\n", cmds[i].name); + break; + } (cmds[i].f)(&cfg, argv); argc -= cmds[i].args; argv += cmds[i].args; |