[NETFILTER]: ctnetlink: use netlink policy
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5bf7585393
commit
f73e924cdd
@@ -373,9 +373,9 @@ nla_put_failure:
|
||||
return -1;
|
||||
}
|
||||
|
||||
static const size_t cta_min_ip[CTA_IP_MAX+1] = {
|
||||
[CTA_IP_V4_SRC] = sizeof(u_int32_t),
|
||||
[CTA_IP_V4_DST] = sizeof(u_int32_t),
|
||||
static const struct nla_policy ipv4_nla_policy[CTA_IP_MAX+1] = {
|
||||
[CTA_IP_V4_SRC] = { .type = NLA_U32 },
|
||||
[CTA_IP_V4_DST] = { .type = NLA_U32 },
|
||||
};
|
||||
|
||||
static int ipv4_nlattr_to_tuple(struct nlattr *tb[],
|
||||
@@ -384,9 +384,6 @@ static int ipv4_nlattr_to_tuple(struct nlattr *tb[],
|
||||
if (!tb[CTA_IP_V4_SRC] || !tb[CTA_IP_V4_DST])
|
||||
return -EINVAL;
|
||||
|
||||
if (nlattr_bad_size(tb, CTA_IP_MAX, cta_min_ip))
|
||||
return -EINVAL;
|
||||
|
||||
t->src.u3.ip = *(__be32 *)nla_data(tb[CTA_IP_V4_SRC]);
|
||||
t->dst.u3.ip = *(__be32 *)nla_data(tb[CTA_IP_V4_DST]);
|
||||
|
||||
@@ -413,6 +410,7 @@ struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4 __read_mostly = {
|
||||
#if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE)
|
||||
.tuple_to_nlattr = ipv4_tuple_to_nlattr,
|
||||
.nlattr_to_tuple = ipv4_nlattr_to_tuple,
|
||||
.nla_policy = ipv4_nla_policy,
|
||||
#endif
|
||||
#if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
|
||||
.ctl_table_path = nf_net_ipv4_netfilter_sysctl_path,
|
||||
|
@@ -248,10 +248,10 @@ nla_put_failure:
|
||||
return -1;
|
||||
}
|
||||
|
||||
static const size_t cta_min_proto[CTA_PROTO_MAX+1] = {
|
||||
[CTA_PROTO_ICMP_TYPE] = sizeof(u_int8_t),
|
||||
[CTA_PROTO_ICMP_CODE] = sizeof(u_int8_t),
|
||||
[CTA_PROTO_ICMP_ID] = sizeof(u_int16_t)
|
||||
static const struct nla_policy icmp_nla_policy[CTA_PROTO_MAX+1] = {
|
||||
[CTA_PROTO_ICMP_TYPE] = { .type = NLA_U8 },
|
||||
[CTA_PROTO_ICMP_CODE] = { .type = NLA_U8 },
|
||||
[CTA_PROTO_ICMP_ID] = { .type = NLA_U16 },
|
||||
};
|
||||
|
||||
static int icmp_nlattr_to_tuple(struct nlattr *tb[],
|
||||
@@ -262,9 +262,6 @@ static int icmp_nlattr_to_tuple(struct nlattr *tb[],
|
||||
|| !tb[CTA_PROTO_ICMP_ID])
|
||||
return -EINVAL;
|
||||
|
||||
if (nlattr_bad_size(tb, CTA_PROTO_MAX, cta_min_proto))
|
||||
return -EINVAL;
|
||||
|
||||
tuple->dst.u.icmp.type =
|
||||
*(u_int8_t *)nla_data(tb[CTA_PROTO_ICMP_TYPE]);
|
||||
tuple->dst.u.icmp.code =
|
||||
@@ -329,6 +326,7 @@ struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp __read_mostly =
|
||||
#if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE)
|
||||
.tuple_to_nlattr = icmp_tuple_to_nlattr,
|
||||
.nlattr_to_tuple = icmp_nlattr_to_tuple,
|
||||
.nla_policy = icmp_nla_policy,
|
||||
#endif
|
||||
#ifdef CONFIG_SYSCTL
|
||||
.ctl_table_header = &icmp_sysctl_header,
|
||||
|
Reference in New Issue
Block a user