summaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_tables_core.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso2013-10-11 10:00:22 +0200
committerPablo Neira Ayuso2013-10-14 18:00:56 +0200
commitc54032e05bfcbb261f47aaadf8476e864e8712f4 (patch)
tree60d0012f8d4bd92c1a0e3ccc7f330174625506a8 /net/netfilter/nf_tables_core.c
parentnetfilter: nf_tables: add compatibility layer for x_tables (diff)
downloadkernel-qcow2-linux-c54032e05bfcbb261f47aaadf8476e864e8712f4.tar.gz
kernel-qcow2-linux-c54032e05bfcbb261f47aaadf8476e864e8712f4.tar.xz
kernel-qcow2-linux-c54032e05bfcbb261f47aaadf8476e864e8712f4.zip
netfilter: nf_tables: nft_payload: fix transport header base
We cannot use skb->transport_header since it's unset, use pkt->xt.thoff instead. Now possible using information made available through the x_tables compatibility layer. Reported-by: Eric Leblond <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nf_tables_core.c')
-rw-r--r--net/netfilter/nf_tables_core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/nf_tables_core.c b/net/netfilter/nf_tables_core.c
index e51a45c12128..3c13007d80df 100644
--- a/net/netfilter/nf_tables_core.c
+++ b/net/netfilter/nf_tables_core.c
@@ -44,7 +44,7 @@ static bool nft_payload_fast_eval(const struct nft_expr *expr,
if (priv->base == NFT_PAYLOAD_NETWORK_HEADER)
ptr = skb_network_header(skb);
else
- ptr = skb_transport_header(skb);
+ ptr = skb_network_header(skb) + pkt->xt.thoff;
ptr += priv->offset;