diff options
author | David S. Miller <davem@davemloft.net> | 2017-11-02 16:52:41 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-11-02 16:52:41 +0900 |
commit | 74784da82ff74379d0583a3ffe42835888705ac7 (patch) | |
tree | 631b121a1e03ade9344ae61d7bbc9ea63f6ae123 | |
parent | 18129a24983906eaf2a2d448ce4b83e27091ebe2 (diff) | |
parent | 7400bb4b5800831581a82f71700af6a5e815c3c8 (diff) | |
download | linux-74784da82ff74379d0583a3ffe42835888705ac7.tar.gz linux-74784da82ff74379d0583a3ffe42835888705ac7.tar.bz2 linux-74784da82ff74379d0583a3ffe42835888705ac7.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
Pablo Neira Ayuso says:
====================
Netfilter fixes for net
The following patchset contains two one-liner fixes for your net tree,
they are:
1) Disable fast hash operations for 2-bytes length keys which is leading
to incorrect lookups in nf_tables, from Anatole Denis.
2) Reload pointer ipv4 header after ip_route_me_harder() given this may
result in use-after-free due to skbuff header reallocation, patch
from Tejaswi Tanikella.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/netfilter/nf_reject_ipv4.c | 2 | ||||
-rw-r--r-- | net/netfilter/nft_set_hash.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/netfilter/nf_reject_ipv4.c b/net/ipv4/netfilter/nf_reject_ipv4.c index eeacbdaf7cdf..5cd06ba3535d 100644 --- a/net/ipv4/netfilter/nf_reject_ipv4.c +++ b/net/ipv4/netfilter/nf_reject_ipv4.c @@ -132,6 +132,8 @@ void nf_send_reset(struct net *net, struct sk_buff *oldskb, int hook) if (ip_route_me_harder(net, nskb, RTN_UNSPEC)) goto free_nskb; + niph = ip_hdr(nskb); + /* "Never happens" */ if (nskb->len > dst_mtu(skb_dst(nskb))) goto free_nskb; diff --git a/net/netfilter/nft_set_hash.c b/net/netfilter/nft_set_hash.c index 0fa01d772c5e..9c0d5a7ce5f9 100644 --- a/net/netfilter/nft_set_hash.c +++ b/net/netfilter/nft_set_hash.c @@ -643,7 +643,6 @@ nft_hash_select_ops(const struct nft_ctx *ctx, const struct nft_set_desc *desc, { if (desc->size) { switch (desc->klen) { - case 2: case 4: return &nft_hash_fast_ops; default: |