Acked-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>

-----Original Message-----
From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Alin Serdean
Sent: Thursday, 2 July, 2015 09:36
To: dev@openvswitch.org
Subject: [ovs-dev] [PATCH] Solved datapath-windows: BSOD when initializing 
switch context

Add check in case of NdisAllocateRWLock fails to allocate the resources.

Check datapath->lock before trying to free it.


Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
Reported-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/92
---
 datapath-windows/ovsext/Flow.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/datapath-windows/ovsext/Flow.c b/datapath-windows/ovsext/Flow.c 
index b93f475..69b546a 100644
--- a/datapath-windows/ovsext/Flow.c
+++ b/datapath-windows/ovsext/Flow.c
@@ -1513,6 +1513,11 @@ OvsDeleteFlowTable(OVS_DATAPATH *datapath)
     DeleteAllFlows(datapath);
     OvsFreeMemoryWithTag(datapath->flowTable, OVS_FLOW_POOL_TAG);
     datapath->flowTable = NULL;
+
+    if (datapath->lock == NULL) {
+        return NDIS_STATUS_SUCCESS;
+    }
+
     NdisFreeRWLock(datapath->lock);
 
     return NDIS_STATUS_SUCCESS;
@@ -1544,6 +1549,10 @@ OvsAllocateFlowTable(OVS_DATAPATH *datapath,
     }
     datapath->lock = NdisAllocateRWLock(switchContext->NdisFilterHandle);
 
+    if (!datapath->lock) {
+        return NDIS_STATUS_RESOURCES;
+    }
+
     return NDIS_STATUS_SUCCESS;
 }
 
--
1.9.5.msysgit.0
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to