diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2005-02-06 11:13:59 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2005-02-06 11:13:59 +0000 |
commit | 1af305441d7fe14534aa3c31e76352c6309a68c7 (patch) | |
tree | ceb76ec25f023482fd6cd9c2c14cc40b1bb98be9 | |
parent | 75be8d597f34a047466e18d3f09ae8c2752ce577 (diff) | |
download | src-1af305441d7fe14534aa3c31e76352c6309a68c7.tar.gz src-1af305441d7fe14534aa3c31e76352c6309a68c7.zip |
Jump to common action checks after doing specific once. This fixes adding
of divert rules, which I break in previous commit.
Pointy hat to: glebius
Notes
Notes:
svn path=/head/; revision=141383
-rw-r--r-- | sys/netinet/ip_fw2.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netinet/ip_fw2.c b/sys/netinet/ip_fw2.c index 57aa13c897f2..9752fa659b1e 100644 --- a/sys/netinet/ip_fw2.c +++ b/sys/netinet/ip_fw2.c @@ -3127,10 +3127,14 @@ check_ipfw_struct(struct ip_fw *rule, int size) case O_TEE: if (ip_divert_ptr == NULL) return EINVAL; + else + goto check_size; case O_NETGRAPH: case O_NGTEE: if (!NG_IPFW_LOADED) return EINVAL; + else + goto check_size; case O_FORWARD_MAC: /* XXX not implemented yet */ case O_CHECK_STATE: case O_COUNT: @@ -3138,6 +3142,7 @@ check_ipfw_struct(struct ip_fw *rule, int size) case O_DENY: case O_REJECT: case O_SKIPTO: +check_size: if (cmdlen != F_INSN_SIZE(ipfw_insn)) goto bad_size; check_action: |