tunneling: Don't leak dst on vlan tagging failure.
authorJesse Gross <jesse@nicira.com>
Fri, 4 Mar 2011 20:56:25 +0000 (12:56 -0800)
committerJesse Gross <jesse@nicira.com>
Fri, 4 Mar 2011 21:15:08 +0000 (13:15 -0800)
When we need to send a packet through the IP stack we need to attach
a dst to the skb.  Due to some interactions with caching this doesn't
happen until late in the transmission process.  However, if we are
inserting a vlan tag and the insertion fails it is possible to leak
the dst.

Reported-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
datapath/tunnel.c

index 7e0c8ee8c90fa555481a35c525a947f16f01bed8..98af3038903986909615db2f5145cefff72a2586 100644 (file)
@@ -1314,9 +1314,9 @@ next:
 error_free:
        tnl_free_linked_skbs(skb);
 error:
-       dst_release(unattached_dst);
        vport_record_error(vport, err);
 out:
+       dst_release(unattached_dst);
        return sent_len;
 }