I originally meant just to fix the use of kfree_skb() instead of consume_skb() on the success path, but then I realized that the failure path returned an skb that it had just freed.
Signed-off-by: Ben Pfaff <b...@nicira.com> --- datapath/vport-capwap.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/datapath/vport-capwap.c b/datapath/vport-capwap.c index 3fb4ffb..8d78b6d 100644 --- a/datapath/vport-capwap.c +++ b/datapath/vport-capwap.c @@ -507,13 +507,13 @@ static struct sk_buff *fragment(struct sk_buff *skb, const struct vport *vport, remaining -= frag_size; } - goto out; + consume_skb(skb); + return result; error: tnl_free_linked_skbs(result); -out: kfree_skb(skb); - return result; + return NULL; } /* All of the following functions relate to fragmentation reassembly. */ -- 1.7.4.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev