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

Commit 7b5bca46 authored by leroy christophe's avatar leroy christophe Committed by Pablo Neira Ayuso
Browse files

netfilter: nf_tables: fix port natting in little endian archs



Make sure this fetches 16-bits port data from the register.
Remove casting to make sparse happy, not needed anymore.

Signed-off-by: default avatarleroy christophe <christophe.leroy@c-s.fr>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 70314fc6
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -27,10 +27,10 @@ static void nft_redir_ipv4_eval(const struct nft_expr *expr,

	memset(&mr, 0, sizeof(mr));
	if (priv->sreg_proto_min) {
		mr.range[0].min.all = (__force __be16)
					data[priv->sreg_proto_min].data[0];
		mr.range[0].max.all = (__force __be16)
					data[priv->sreg_proto_max].data[0];
		mr.range[0].min.all =
			*(__be16 *)&data[priv->sreg_proto_min].data[0];
		mr.range[0].max.all =
			*(__be16 *)&data[priv->sreg_proto_max].data[0];
		mr.range[0].flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
	}

+4 −4
Original line number Diff line number Diff line
@@ -27,10 +27,10 @@ static void nft_redir_ipv6_eval(const struct nft_expr *expr,

	memset(&range, 0, sizeof(range));
	if (priv->sreg_proto_min) {
		range.min_proto.all = (__force __be16)
					data[priv->sreg_proto_min].data[0];
		range.max_proto.all = (__force __be16)
					data[priv->sreg_proto_max].data[0];
		range.min_proto.all =
			*(__be16 *)&data[priv->sreg_proto_min].data[0];
		range.max_proto.all =
			*(__be16 *)&data[priv->sreg_proto_max].data[0];
		range.flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
	}

+4 −4
Original line number Diff line number Diff line
@@ -65,10 +65,10 @@ static void nft_nat_eval(const struct nft_expr *expr,
	}

	if (priv->sreg_proto_min) {
		range.min_proto.all = (__force __be16)
					data[priv->sreg_proto_min].data[0];
		range.max_proto.all = (__force __be16)
					data[priv->sreg_proto_max].data[0];
		range.min_proto.all =
			*(__be16 *)&data[priv->sreg_proto_min].data[0];
		range.max_proto.all =
			*(__be16 *)&data[priv->sreg_proto_max].data[0];
		range.flags |= NF_NAT_RANGE_PROTO_SPECIFIED;
	}