Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com> Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> --- datapath-windows/ovsext/Driver.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/datapath-windows/ovsext/Driver.c b/datapath-windows/ovsext/Driver.c index 13fcde2..853886e 100644 --- a/datapath-windows/ovsext/Driver.c +++ b/datapath-windows/ovsext/Driver.c @@ -139,18 +139,26 @@ DriverEntry(PDRIVER_OBJECT driverObject, driverObject->DriverUnload = OvsExtUnload; status = NdisFRegisterFilterDriver(driverObject, - (NDIS_HANDLE) gOvsExtDriverObject, - &driverChars, &gOvsExtDriverHandle); + (NDIS_HANDLE)gOvsExtDriverObject, + &driverChars, + &gOvsExtDriverHandle); if (status != NDIS_STATUS_SUCCESS) { - return status; + goto cleanup; } - /* Create the communication channel for usersapce. */ + /* Create the communication channel for userspace. */ status = OvsCreateDeviceObject(gOvsExtDriverHandle); if (status != NDIS_STATUS_SUCCESS) { + goto cleanup; + } + +cleanup: + if (status != NDIS_STATUS_SUCCESS){ OvsCleanup(); - NdisFDeregisterFilterDriver(gOvsExtDriverHandle); - gOvsExtDriverHandle = NULL; + if (gOvsExtDriverHandle) { + NdisFDeregisterFilterDriver(gOvsExtDriverHandle); + gOvsExtDriverHandle = NULL; + } } return status; -- 1.9.0.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev