[ovs-dev] [PATCH v2 1/2] datapath: Free skb(s) on recirculation error

Jesse Gross jesse at nicira.com
Mon May 12 23:28:56 UTC 2014

On Mon, May 12, 2014 at 4:06 PM, Daniele Di Proietto
<ddiproietto at vmware.com> wrote:
> If I understand correctly, the new code frees the skb only if execute_recirc() _returns_ an error and this can happen only if ovs_flow_extract() returns an error, in which case recirc_skb only gets freed once, but maybe I’m wrong.

I agree that there is a problem currently with the error case and that
this fixes it. However, the current code also returns from the
function on success if this is the last action, which this removes.
This cause us to both free the packet during the course of the
(successful) recirculation and later down in the original caller. In
the last_action case, there is only a single skb so this causes a
double free.

More information about the dev mailing list