]> git.baikalelectronics.ru Git - kernel.git/commit
udp: drop skb extensions before marking skb stateless
authorFlorian Westphal <fw@strlen.de>
Thu, 21 Nov 2019 05:56:23 +0000 (06:56 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 22 Nov 2019 17:28:46 +0000 (09:28 -0800)
commita1a03c2eaba83b04cd24cdbc60a2f33ccc22e2bc
tree291eb5fab8488e13ce843160bdc5a0fd7a5c936b
parent8257a53eb573372eb3107f46362af24c0b620114
udp: drop skb extensions before marking skb stateless

Once udp stack has set the UDP_SKB_IS_STATELESS flag, later skb free
assumes all skb head state has been dropped already.

This will leak the extension memory in case the skb has extensions other
than the ipsec secpath, e.g. bridge nf data.

To fix this, set the UDP_SKB_IS_STATELESS flag only if we don't have
extensions or if the extension space can be free'd.

Fixes: 555515fb2aaca63f58dfb91e ("netfilter: drop bridge nf reset from nf_reset")
Cc: Paolo Abeni <pabeni@redhat.com>
Reported-by: Byron Stanoszek <gandalf@winds.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
net/ipv4/udp.c