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 ea53d15454041d0e5447eaa2d10857b63f62b689..dc7df714aa0bb9825163653191fef9cb5f85c78e 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. */