mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 04:34:08 +08:00
netfilter: nf_tables: pass context structure to nft_parse_register_load
Mechanical transformation, no logical changes intended. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
d5283b47e2
commit
7ea0522ef8
@ -254,7 +254,8 @@ static inline enum nft_registers nft_type_to_reg(enum nft_data_types type)
|
||||
int nft_parse_u32_check(const struct nlattr *attr, int max, u32 *dest);
|
||||
int nft_dump_register(struct sk_buff *skb, unsigned int attr, unsigned int reg);
|
||||
|
||||
int nft_parse_register_load(const struct nlattr *attr, u8 *sreg, u32 len);
|
||||
int nft_parse_register_load(const struct nft_ctx *ctx,
|
||||
const struct nlattr *attr, u8 *sreg, u32 len);
|
||||
int nft_parse_register_store(const struct nft_ctx *ctx,
|
||||
const struct nlattr *attr, u8 *dreg,
|
||||
const struct nft_data *data,
|
||||
|
@ -142,7 +142,7 @@ static int nft_meta_bridge_set_init(const struct nft_ctx *ctx,
|
||||
}
|
||||
|
||||
priv->len = len;
|
||||
err = nft_parse_register_load(tb[NFTA_META_SREG], &priv->sreg, len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_META_SREG], &priv->sreg, len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
@ -40,13 +40,13 @@ static int nft_dup_ipv4_init(const struct nft_ctx *ctx,
|
||||
if (tb[NFTA_DUP_SREG_ADDR] == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_DUP_SREG_ADDR], &priv->sreg_addr,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DUP_SREG_ADDR], &priv->sreg_addr,
|
||||
sizeof(struct in_addr));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_DUP_SREG_DEV])
|
||||
err = nft_parse_register_load(tb[NFTA_DUP_SREG_DEV],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DUP_SREG_DEV],
|
||||
&priv->sreg_dev, sizeof(int));
|
||||
|
||||
return err;
|
||||
|
@ -38,13 +38,13 @@ static int nft_dup_ipv6_init(const struct nft_ctx *ctx,
|
||||
if (tb[NFTA_DUP_SREG_ADDR] == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_DUP_SREG_ADDR], &priv->sreg_addr,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DUP_SREG_ADDR], &priv->sreg_addr,
|
||||
sizeof(struct in6_addr));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_DUP_SREG_DEV])
|
||||
err = nft_parse_register_load(tb[NFTA_DUP_SREG_DEV],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DUP_SREG_DEV],
|
||||
&priv->sreg_dev, sizeof(int));
|
||||
|
||||
return err;
|
||||
|
@ -11038,7 +11038,8 @@ static int nft_validate_register_load(enum nft_registers reg, unsigned int len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int nft_parse_register_load(const struct nlattr *attr, u8 *sreg, u32 len)
|
||||
int nft_parse_register_load(const struct nft_ctx *ctx,
|
||||
const struct nlattr *attr, u8 *sreg, u32 len)
|
||||
{
|
||||
u32 reg;
|
||||
int err;
|
||||
|
@ -171,7 +171,7 @@ static int nft_bitwise_init(const struct nft_ctx *ctx,
|
||||
|
||||
priv->len = len;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_BITWISE_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_BITWISE_SREG], &priv->sreg,
|
||||
priv->len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
@ -365,7 +365,7 @@ static int nft_bitwise_fast_init(const struct nft_ctx *ctx,
|
||||
struct nft_bitwise_fast_expr *priv = nft_expr_priv(expr);
|
||||
int err;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_BITWISE_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_BITWISE_SREG], &priv->sreg,
|
||||
sizeof(u32));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -139,7 +139,7 @@ static int nft_byteorder_init(const struct nft_ctx *ctx,
|
||||
|
||||
priv->len = len;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_BYTEORDER_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_BYTEORDER_SREG], &priv->sreg,
|
||||
priv->len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -83,7 +83,7 @@ static int nft_cmp_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -222,7 +222,7 @@ static int nft_cmp_fast_init(const struct nft_ctx *ctx,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -323,7 +323,7 @@ static int nft_cmp16_fast_init(const struct nft_ctx *ctx,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_CMP_SREG], &priv->sreg, desc.len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
@ -606,7 +606,7 @@ static int nft_ct_set_init(const struct nft_ctx *ctx,
|
||||
}
|
||||
|
||||
priv->len = len;
|
||||
err = nft_parse_register_load(tb[NFTA_CT_SREG], &priv->sreg, len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_CT_SREG], &priv->sreg, len);
|
||||
if (err < 0)
|
||||
goto err1;
|
||||
|
||||
|
@ -40,7 +40,7 @@ static int nft_dup_netdev_init(const struct nft_ctx *ctx,
|
||||
if (tb[NFTA_DUP_SREG_DEV] == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
return nft_parse_register_load(tb[NFTA_DUP_SREG_DEV], &priv->sreg_dev,
|
||||
return nft_parse_register_load(ctx, tb[NFTA_DUP_SREG_DEV], &priv->sreg_dev,
|
||||
sizeof(int));
|
||||
}
|
||||
|
||||
|
@ -215,7 +215,7 @@ static int nft_dynset_init(const struct nft_ctx *ctx,
|
||||
return err;
|
||||
}
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_DYNSET_SREG_KEY], &priv->sreg_key,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DYNSET_SREG_KEY], &priv->sreg_key,
|
||||
set->klen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
@ -226,7 +226,7 @@ static int nft_dynset_init(const struct nft_ctx *ctx,
|
||||
if (set->dtype == NFT_DATA_VERDICT)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_DYNSET_SREG_DATA],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_DYNSET_SREG_DATA],
|
||||
&priv->sreg_data, set->dlen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -588,7 +588,7 @@ static int nft_exthdr_tcp_set_init(const struct nft_ctx *ctx,
|
||||
priv->flags = flags;
|
||||
priv->op = op;
|
||||
|
||||
return nft_parse_register_load(tb[NFTA_EXTHDR_SREG], &priv->sreg,
|
||||
return nft_parse_register_load(ctx, tb[NFTA_EXTHDR_SREG], &priv->sreg,
|
||||
priv->len);
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ static int nft_fwd_netdev_init(const struct nft_ctx *ctx,
|
||||
if (tb[NFTA_FWD_SREG_DEV] == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
return nft_parse_register_load(tb[NFTA_FWD_SREG_DEV], &priv->sreg_dev,
|
||||
return nft_parse_register_load(ctx, tb[NFTA_FWD_SREG_DEV], &priv->sreg_dev,
|
||||
sizeof(int));
|
||||
}
|
||||
|
||||
@ -178,12 +178,12 @@ static int nft_fwd_neigh_init(const struct nft_ctx *ctx,
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_FWD_SREG_DEV], &priv->sreg_dev,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_FWD_SREG_DEV], &priv->sreg_dev,
|
||||
sizeof(int));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
return nft_parse_register_load(tb[NFTA_FWD_SREG_ADDR], &priv->sreg_addr,
|
||||
return nft_parse_register_load(ctx, tb[NFTA_FWD_SREG_ADDR], &priv->sreg_addr,
|
||||
addr_len);
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,7 @@ static int nft_jhash_init(const struct nft_ctx *ctx,
|
||||
|
||||
priv->len = len;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_HASH_SREG], &priv->sreg, len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_HASH_SREG], &priv->sreg, len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
@ -113,7 +113,7 @@ static int nft_lookup_init(const struct nft_ctx *ctx,
|
||||
if (IS_ERR(set))
|
||||
return PTR_ERR(set);
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_LOOKUP_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_LOOKUP_SREG], &priv->sreg,
|
||||
set->klen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -52,13 +52,13 @@ static int nft_masq_init(const struct nft_ctx *ctx,
|
||||
priv->flags = ntohl(nla_get_be32(tb[NFTA_MASQ_FLAGS]));
|
||||
|
||||
if (tb[NFTA_MASQ_REG_PROTO_MIN]) {
|
||||
err = nft_parse_register_load(tb[NFTA_MASQ_REG_PROTO_MIN],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_MASQ_REG_PROTO_MIN],
|
||||
&priv->sreg_proto_min, plen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_MASQ_REG_PROTO_MAX]) {
|
||||
err = nft_parse_register_load(tb[NFTA_MASQ_REG_PROTO_MAX],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_MASQ_REG_PROTO_MAX],
|
||||
&priv->sreg_proto_max,
|
||||
plen);
|
||||
if (err < 0)
|
||||
|
@ -657,7 +657,7 @@ int nft_meta_set_init(const struct nft_ctx *ctx,
|
||||
}
|
||||
|
||||
priv->len = len;
|
||||
err = nft_parse_register_load(tb[NFTA_META_SREG], &priv->sreg, len);
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_META_SREG], &priv->sreg, len);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
|
@ -214,13 +214,13 @@ static int nft_nat_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
|
||||
priv->family = family;
|
||||
|
||||
if (tb[NFTA_NAT_REG_ADDR_MIN]) {
|
||||
err = nft_parse_register_load(tb[NFTA_NAT_REG_ADDR_MIN],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_NAT_REG_ADDR_MIN],
|
||||
&priv->sreg_addr_min, alen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_NAT_REG_ADDR_MAX]) {
|
||||
err = nft_parse_register_load(tb[NFTA_NAT_REG_ADDR_MAX],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_NAT_REG_ADDR_MAX],
|
||||
&priv->sreg_addr_max,
|
||||
alen);
|
||||
if (err < 0)
|
||||
@ -234,13 +234,13 @@ static int nft_nat_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
|
||||
|
||||
plen = sizeof_field(struct nf_nat_range, min_proto.all);
|
||||
if (tb[NFTA_NAT_REG_PROTO_MIN]) {
|
||||
err = nft_parse_register_load(tb[NFTA_NAT_REG_PROTO_MIN],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_NAT_REG_PROTO_MIN],
|
||||
&priv->sreg_proto_min, plen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_NAT_REG_PROTO_MAX]) {
|
||||
err = nft_parse_register_load(tb[NFTA_NAT_REG_PROTO_MAX],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_NAT_REG_PROTO_MAX],
|
||||
&priv->sreg_proto_max,
|
||||
plen);
|
||||
if (err < 0)
|
||||
|
@ -143,7 +143,7 @@ static int nft_objref_map_init(const struct nft_ctx *ctx,
|
||||
if (!(set->flags & NFT_SET_OBJECT))
|
||||
return -EINVAL;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_OBJREF_SET_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_OBJREF_SET_SREG], &priv->sreg,
|
||||
set->klen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -981,7 +981,7 @@ static int nft_payload_set_init(const struct nft_ctx *ctx,
|
||||
}
|
||||
priv->csum_type = csum_type;
|
||||
|
||||
return nft_parse_register_load(tb[NFTA_PAYLOAD_SREG], &priv->sreg,
|
||||
return nft_parse_register_load(ctx, tb[NFTA_PAYLOAD_SREG], &priv->sreg,
|
||||
priv->len);
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ static int nft_queue_sreg_init(const struct nft_ctx *ctx,
|
||||
struct nft_queue *priv = nft_expr_priv(expr);
|
||||
int err;
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_QUEUE_SREG_QNUM],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_QUEUE_SREG_QNUM],
|
||||
&priv->sreg_qnum, sizeof(u32));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@ -83,7 +83,7 @@ static int nft_range_init(const struct nft_ctx *ctx, const struct nft_expr *expr
|
||||
goto err2;
|
||||
}
|
||||
|
||||
err = nft_parse_register_load(tb[NFTA_RANGE_SREG], &priv->sreg,
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_RANGE_SREG], &priv->sreg,
|
||||
desc_from.len);
|
||||
if (err < 0)
|
||||
goto err2;
|
||||
|
@ -51,13 +51,13 @@ static int nft_redir_init(const struct nft_ctx *ctx,
|
||||
|
||||
plen = sizeof_field(struct nf_nat_range, min_proto.all);
|
||||
if (tb[NFTA_REDIR_REG_PROTO_MIN]) {
|
||||
err = nft_parse_register_load(tb[NFTA_REDIR_REG_PROTO_MIN],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_REDIR_REG_PROTO_MIN],
|
||||
&priv->sreg_proto_min, plen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (tb[NFTA_REDIR_REG_PROTO_MAX]) {
|
||||
err = nft_parse_register_load(tb[NFTA_REDIR_REG_PROTO_MAX],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_REDIR_REG_PROTO_MAX],
|
||||
&priv->sreg_proto_max,
|
||||
plen);
|
||||
if (err < 0)
|
||||
|
@ -254,14 +254,14 @@ static int nft_tproxy_init(const struct nft_ctx *ctx,
|
||||
}
|
||||
|
||||
if (tb[NFTA_TPROXY_REG_ADDR]) {
|
||||
err = nft_parse_register_load(tb[NFTA_TPROXY_REG_ADDR],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_TPROXY_REG_ADDR],
|
||||
&priv->sreg_addr, alen);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
if (tb[NFTA_TPROXY_REG_PORT]) {
|
||||
err = nft_parse_register_load(tb[NFTA_TPROXY_REG_PORT],
|
||||
err = nft_parse_register_load(ctx, tb[NFTA_TPROXY_REG_PORT],
|
||||
&priv->sreg_port, sizeof(u16));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
Loading…
Reference in New Issue
Block a user