datapath-windows: Solved BSOD when handling flows
authorSorin Vinturis <svinturis@cloudbasesolutions.com>
Wed, 1 Jul 2015 20:03:01 +0000 (20:03 +0000)
committerBen Pfaff <blp@nicira.com>
Wed, 1 Jul 2015 23:24:04 +0000 (16:24 -0700)
OvsPrepareFlow() returns an error only when the new flow allocation
fails. In this case HandleFlowPut() should return error without trying
to free the flow, thus avoiding the BSOD.

Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/91
Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
datapath-windows/ovsext/Flow.c

index 6fa10a3..b93f475 100644 (file)
@@ -2163,7 +2163,6 @@ HandleFlowPut(OvsFlowPut *put,
 
         status = OvsPrepareFlow(&KernelFlow, put, hash);
         if (status != STATUS_SUCCESS) {
-            FreeFlow(KernelFlow);
             return STATUS_UNSUCCESSFUL;
         }