Don't assume !IPv6 is IPv4 in ipfw(8) add_src() and add_dst().
Submitted by: Neel Chauhan <neel AT neelc DOT org> MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21812
This commit is contained in:
parent
4d4aa25694
commit
8149b12da1
@ -3717,11 +3717,10 @@ add_src(ipfw_insn *cmd, char *av, u_char proto, int cblen, struct tidx *tstate)
|
||||
if (proto == IPPROTO_IPV6 || strcmp(av, "me6") == 0 ||
|
||||
inet_pton(AF_INET6, host, &a) == 1)
|
||||
ret = add_srcip6(cmd, av, cblen, tstate);
|
||||
/* XXX: should check for IPv4, not !IPv6 */
|
||||
if (ret == NULL && (proto == IPPROTO_IP || strcmp(av, "me") == 0 ||
|
||||
inet_pton(AF_INET6, host, &a) != 1))
|
||||
else if (proto == IPPROTO_IP || strcmp(av, "me") == 0 ||
|
||||
inet_pton(AF_INET, host, &a) == 1)
|
||||
ret = add_srcip(cmd, av, cblen, tstate);
|
||||
if (ret == NULL && strcmp(av, "any") != 0)
|
||||
else if (ret == NULL && strcmp(av, "any") != 0)
|
||||
ret = cmd;
|
||||
|
||||
return ret;
|
||||
@ -3748,11 +3747,10 @@ add_dst(ipfw_insn *cmd, char *av, u_char proto, int cblen, struct tidx *tstate)
|
||||
if (proto == IPPROTO_IPV6 || strcmp(av, "me6") == 0 ||
|
||||
inet_pton(AF_INET6, host, &a) == 1)
|
||||
ret = add_dstip6(cmd, av, cblen, tstate);
|
||||
/* XXX: should check for IPv4, not !IPv6 */
|
||||
if (ret == NULL && (proto == IPPROTO_IP || strcmp(av, "me") == 0 ||
|
||||
inet_pton(AF_INET6, host, &a) != 1))
|
||||
else if (proto == IPPROTO_IP || strcmp(av, "me") == 0 ||
|
||||
inet_pton(AF_INET, host, &a) == 1)
|
||||
ret = add_dstip(cmd, av, cblen, tstate);
|
||||
if (ret == NULL && strcmp(av, "any") != 0)
|
||||
else if (ret == NULL && strcmp(av, "any") != 0)
|
||||
ret = cmd;
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user