Fix leaking of flows when output action validation fails.
authorJustin Pettit <jpettit@nicira.com>
Sat, 25 Oct 2008 00:24:06 +0000 (17:24 -0700)
committerJustin Pettit <jpettit@nicira.com>
Sat, 25 Oct 2008 00:24:06 +0000 (17:24 -0700)
When action validation fails from a flow add, the flow would be leaked.  This
caused the kmem cache (which handles allocating flow entries) to be unhappy
when we try to unload the OpenFlow module.

Thanks to Brandon Heller for catching this.

datapath/forward.c

index ea53d15..dc7df71 100644 (file)
@@ -224,7 +224,7 @@ add_flow(struct sw_chain *chain, const struct sender *sender,
        if (v_code != ACT_VALIDATION_OK) {
                dp_send_error_msg(chain->dp, sender, OFPET_BAD_ACTION, v_code,
                                  ofm, ntohs(ofm->header.length));
-               goto error;
+               goto error_free_flow;
        }
 
        /* Fill out flow. */