Subject: pull request (net): ipsec 2018-01-11

From: Steffen Klassert <[email-masked]>
Date: Thu, 11 Jan 2018 12:37:35 +0100

1) Don't allow to change the encap type on state updates.
   The encap type is set on state initialization and
   should not change anymore. From Herbert Xu.

2) Skip dead policies when rehashing to fix a
   slab-out-of-bounds bug in xfrm_hash_rebuild.
   From Florian Westphal.

3) Two buffer overread fixes in pfkey.
   From Eric Biggers.

4) Fix rcu usage in xfrm_get_type_offload,
   request_module can sleep, so can't be used
   under rcu_read_lock. From Sabrina Dubroca.

5) Fix an uninitialized lock in xfrm_trans_queue.
   Use __skb_queue_tail instead of skb_queue_tail
   in xfrm_trans_queue as we don't need the lock.
   From Herbert Xu.

6) Currently it is possible to create an xfrm state with an
   unknown encap type in ESP IPv4. Fix this by returning an
   error on unknown encap types. Also from Herbert Xu.

7) Fix sleeping inside a spinlock in xfrm_policy_cache_flush.
   From Florian Westphal.

8) Fix ESP GRO when the headers not fully in the linear part
   of the skb. We need to pull before we can access them.

9) Fix a skb leak on error in key_notify_policy.

10) Fix a race in the xdst pcpu cache, we need to
    run the resolver routines with bottom halfes
    off like the old flowcache did.

Please pull or let me know if there are problems.

Thanks!

The following changes since commit 2758b3e3e630ba304fc4aca434d591e70e528298:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-12-28 23:20:21 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git master

for you to fetch changes up to 76a4201191814a0061cb5c861fafb9ecaa764846:

  xfrm: Fix a race in the xdst pcpu cache. (2018-01-10 12:14:28 +0100)

----------------------------------------------------------------
Eric Biggers (2):
      af_key: fix buffer overread in verify_address_len()
      af_key: fix buffer overread in parse_exthdrs()

Florian Westphal (2):
      xfrm: skip policies marked as dead while rehashing
      xfrm: don't call xfrm_policy_cache_flush while holding spinlock

Herbert Xu (3):
      xfrm: Forbid state updates from changing encap type
      xfrm: Use __skb_queue_tail in xfrm_trans_queue
      xfrm: Return error on unknown encap_type in init_state

Sabrina Dubroca (1):
      xfrm: fix rcu usage in xfrm_get_type_offload

Steffen Klassert (3):
      esp: Fix GRO when the headers not fully in the linear part of the skb.
      af_key: Fix memory leak in key_notify_policy.
      xfrm: Fix a race in the xdst pcpu cache.

 net/ipv4/esp4.c         |  1 +
 net/ipv4/esp4_offload.c |  3 ++-
 net/ipv6/esp6.c         |  3 +--
 net/ipv6/esp6_offload.c |  3 ++-
 net/key/af_key.c        | 12 +++++++++++-
 net/xfrm/xfrm_input.c   |  2 +-
 net/xfrm/xfrm_policy.c  | 15 +++++++++++----
 net/xfrm/xfrm_state.c   | 11 +++++++++--
 8 files changed, 38 insertions(+), 12 deletions(-)