diff options
author | melifaro <melifaro@FreeBSD.org> | 2014-10-13 12:49:04 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2014-10-13 12:49:04 +0000 |
commit | 76e89c35002f91c3847a4d3c09550051a97cb6e4 (patch) | |
tree | 6d01ab5880ca0418a4c971188ee9b6c2cd26d853 /sbin/ipfw/ipfw2.c | |
parent | 14eb15740e8e9c54c73db41489a10ca25bf55cb2 (diff) | |
download | FreeBSD-src-76e89c35002f91c3847a4d3c09550051a97cb6e4.zip FreeBSD-src-76e89c35002f91c3847a4d3c09550051a97cb6e4.tar.gz |
Show error when deleting non-existing rule number.
Found by: Oleg Ginzburg
Diffstat (limited to 'sbin/ipfw/ipfw2.c')
-rw-r--r-- | sbin/ipfw/ipfw2.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index ac79ef8..2424519 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -3009,7 +3009,6 @@ fill_flags_cmd(ipfw_insn *cmd, enum ipfw_opcodes opcode, void ipfw_delete(char *av[]) { - uint32_t rulenum; int i; int exitval = EX_OK; int do_set = 0; @@ -3059,7 +3058,15 @@ ipfw_delete(char *av[]) if (i != 0) { exitval = EX_UNAVAILABLE; warn("rule %u: setsockopt(IP_FW_XDEL)", - rulenum); + rt.start_rule); + } else if (rt.new_set == 0) { + exitval = EX_UNAVAILABLE; + if (rt.start_rule != rt.end_rule) + warnx("no rules rules in %u-%u range", + rt.start_rule, rt.end_rule); + else + warnx("rule %u not found", + rt.start_rule); } } } |