Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27e6d201 authored by Patrick McHardy's avatar Patrick McHardy Committed by Pablo Neira Ayuso
Browse files

netfilter: nf_tables: kill nft_validate_output_register()



All users of nft_validate_register_store() first invoke
nft_validate_output_register(). There is in fact no use for using it
on its own, so simplify the code by folding the functionality into
nft_validate_register_store() and kill it.

Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 58f40ab6
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -113,7 +113,6 @@ static inline enum nft_registers nft_type_to_reg(enum nft_data_types type)
}

int nft_validate_input_register(enum nft_registers reg);
int nft_validate_output_register(enum nft_registers reg);
int nft_validate_register_store(const struct nft_ctx *ctx,
				enum nft_registers reg,
				const struct nft_data *data,
+2 −11
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ static int nft_meta_bridge_get_init(const struct nft_ctx *ctx,
{
	struct nft_meta *priv = nft_expr_priv(expr);
	unsigned int len;
	int err;

	priv->key = ntohl(nla_get_be32(tb[NFTA_META_KEY]));
	switch (priv->key) {
@@ -67,16 +66,8 @@ static int nft_meta_bridge_get_init(const struct nft_ctx *ctx,
	}

	priv->dreg = ntohl(nla_get_be32(tb[NFTA_META_DREG]));
	err = nft_validate_output_register(priv->dreg);
	if (err < 0)
		return err;

	err = nft_validate_register_store(ctx, priv->dreg, NULL,
	return nft_validate_register_store(ctx, priv->dreg, NULL,
					   NFT_DATA_VALUE, len);
	if (err < 0)
		return err;

	return 0;
}

static struct nft_expr_type nft_meta_bridge_type;
+5 −18
Original line number Diff line number Diff line
@@ -4139,24 +4139,6 @@ int nft_validate_input_register(enum nft_registers reg)
}
EXPORT_SYMBOL_GPL(nft_validate_input_register);

/**
 *	nft_validate_output_register - validate an expressions' output register
 *
 *	@reg: the register number
 *
 * 	Validate that the output register is one of the general purpose
 * 	registers or the verdict register.
 */
int nft_validate_output_register(enum nft_registers reg)
{
	if (reg < NFT_REG_VERDICT)
		return -EINVAL;
	if (reg > NFT_REG_MAX)
		return -ERANGE;
	return 0;
}
EXPORT_SYMBOL_GPL(nft_validate_output_register);

/**
 *	nft_validate_register_store - validate an expressions' register store
 *
@@ -4198,10 +4180,15 @@ int nft_validate_register_store(const struct nft_ctx *ctx,

		return 0;
	default:
		if (reg < NFT_REG_1)
			return -EINVAL;
		if (reg > NFT_REG_MAX)
			return -ERANGE;
		if (len == 0)
			return -EINVAL;
		if (len > FIELD_SIZEOF(struct nft_data, data))
			return -ERANGE;

		if (data != NULL && type != NFT_DATA_VALUE)
			return -EINVAL;
		return 0;
+0 −4
Original line number Diff line number Diff line
@@ -71,10 +71,6 @@ static int nft_bitwise_init(const struct nft_ctx *ctx,
		return err;

	priv->dreg = ntohl(nla_get_be32(tb[NFTA_BITWISE_DREG]));
	err = nft_validate_output_register(priv->dreg);
	if (err < 0)
		return err;

	err = nft_validate_register_store(ctx, priv->dreg, NULL,
					  NFT_DATA_VALUE, priv->len);
	if (err < 0)
+2 −9
Original line number Diff line number Diff line
@@ -115,15 +115,8 @@ static int nft_byteorder_init(const struct nft_ctx *ctx,
		return err;

	priv->dreg = ntohl(nla_get_be32(tb[NFTA_BYTEORDER_DREG]));
	err = nft_validate_output_register(priv->dreg);
	if (err < 0)
		return err;
	err = nft_validate_register_store(ctx, priv->dreg, NULL,
	return nft_validate_register_store(ctx, priv->dreg, NULL,
					   NFT_DATA_VALUE, priv->len);
	if (err < 0)
		return err;

	return 0;
}

static int nft_byteorder_dump(struct sk_buff *skb, const struct nft_expr *expr)
Loading