Fix setfib target.

Problem was introduced in r272840 when converting tablearg value to 0.

Submitted by:	Denis Schneider <v1ne2go at gmail>
This commit is contained in:
melifaro 2015-11-08 12:24:19 +00:00
parent 6017eab6e9
commit 2eab7c29ca
2 changed files with 3 additions and 3 deletions

View File

@ -2476,7 +2476,7 @@ do { \
uint32_t fib;
IPFW_INC_RULE_COUNTER(f, pktlen);
fib = TARG(cmd->arg1, fib) & 0x7FFFF;
fib = TARG(cmd->arg1, fib) & 0x7FFF;
if (fib >= rt_numfibs)
fib = 0;
M_SETFIB(m, fib);

View File

@ -1497,9 +1497,9 @@ check_ipfw_rule_body(ipfw_insn *cmd, int cmd_len, struct rule_check_info *ci)
if (cmdlen != F_INSN_SIZE(ipfw_insn))
goto bad_size;
if ((cmd->arg1 != IP_FW_TARG) &&
((cmd->arg1 & 0x7FFFF) >= rt_numfibs)) {
((cmd->arg1 & 0x7FFF) >= rt_numfibs)) {
printf("ipfw: invalid fib number %d\n",
cmd->arg1 & 0x7FFFF);
cmd->arg1 & 0x7FFF);
return EINVAL;
}
goto check_action;