OpenCloudOS-Kernel/net/openvswitch
Joe Stringer 6f5cadee44 openvswitch: Fix skb leak using IPv6 defrag
nf_ct_frag6_gather() makes a clone of each skb passed to it, and if the
reassembly is successful, expects the caller to free all of the original
skbs using nf_ct_frag6_consume_orig(). This call was previously missing,
meaning that the original fragments were never freed (with the exception
of the last fragment to arrive).

Fix this by ensuring that all original fragments except for the last
fragment are freed via nf_ct_frag6_consume_orig(). The last fragment
will be morphed into the head, so it must not be freed yet. Furthermore,
retain the ->next pointer for the head after skb_morph().

Fixes: 7f8a436eaa ("openvswitch: Add conntrack action")
Reported-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Joe Stringer <joestringer@nicira.com>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-10-27 19:32:18 -07:00
..
Kconfig openvswitch: Fix dependency on IPv6 defrag. 2015-09-11 15:39:04 -07:00
Makefile openvswitch: Remove conntrack Kconfig option. 2015-09-06 23:48:33 -07:00
actions.c openvswitch: Fix double-free on ip_defrag() errors 2015-10-27 19:32:14 -07:00
conntrack.c openvswitch: Fix skb leak using IPv6 defrag 2015-10-27 19:32:18 -07:00
conntrack.h openvswitch: Fix double-free on ip_defrag() errors 2015-10-27 19:32:14 -07:00
datapath.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
datapath.h openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
dp_notify.c openvswitch: Move dev pointer into vport itself 2015-07-21 10:39:07 -07:00
flow.c ip-tunnel: Use API to access tunnel metadata options. 2015-08-31 12:28:56 -07:00
flow.h openvswitch: Rename LABEL->LABELS 2015-10-05 06:34:28 -07:00
flow_netlink.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
flow_netlink.h openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
flow_table.c ovs: do not allocate memory from offline numa node 2015-10-05 06:42:03 -07:00
flow_table.h openvswitch: Zero flows on allocation. 2015-09-22 17:33:41 -07:00
vport-geneve.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
vport-gre.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
vport-internal_dev.c openvswitch: Allocate memory for ovs internal device stats. 2015-10-21 19:06:36 -07:00
vport-internal_dev.h openvswitch: introduce rtnl ops stub 2014-07-01 14:40:17 -07:00
vport-netdev.c openvswitch: Remove vport stats. 2015-08-29 19:07:15 -07:00
vport-netdev.h openvswitch: Remove vport stats. 2015-08-29 19:07:15 -07:00
vport-vxlan.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
vport.c openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00
vport.h openvswitch: Fix egress tunnel info. 2015-10-22 19:39:25 -07:00