summaryrefslogtreecommitdiff
path: root/net/openvswitch/dp_notify.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-10-22 13:03:40 +0400
committerDavid S. Miller <davem@davemloft.net>2012-10-22 23:16:07 +0400
commit3d861f661006606bf159fd6bd973e83dbf21d0f9 (patch)
tree6f141e16d0d0160b515271cee5fdb896599c133c /net/openvswitch/dp_notify.c
parent8a6e29d6d037de0dd62fe6648ba9b29866db5416 (diff)
downloadlinux-3d861f661006606bf159fd6bd973e83dbf21d0f9.tar.xz
net: fix secpath kmemleak
Mike Kazantsev found 3.5 kernels and beyond were leaking memory, and tracked the faulty commit to a1c7fff7e18f59e ("net: netdev_alloc_skb() use build_skb()") While this commit seems fine, it uncovered a bug introduced in commit bad43ca8325 ("net: introduce skb_try_coalesce()), in function kfree_skb_partial()"): If head is stolen, we free the sk_buff, without removing references on secpath (skb->sp). So IPsec + IP defrag/reassembly (using skb coalescing), or TCP coalescing could leak secpath objects. Fix this bug by calling skb_release_head_state(skb) to properly release all possible references to linked objects. Reported-by: Mike Kazantsev <mk.fraggod@gmail.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Bisected-by: Mike Kazantsev <mk.fraggod@gmail.com> Tested-by: Mike Kazantsev <mk.fraggod@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/openvswitch/dp_notify.c')
0 files changed, 0 insertions, 0 deletions