________________________________________
From: [email protected] <[email protected]> on
behalf of Alin Serdean <[email protected]>
Sent: Thursday, July 13, 2017 9:40 PM
To: [email protected]
Subject: [ovs-dev] [PATCH 33/40] datapath-windows: Check return status when
using APIs
Check the return status of `ConvertInterfaceLuidToAlias` and
`RtlStringCbLengthW`
and treat them accordingly.
Also remove unneeded initialization for `interfaceName`.
Signed-off-by: Alin Gabriel Serdean <[email protected]>
---
datapath-windows/ovsext/IpHelper.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/datapath-windows/ovsext/IpHelper.c
b/datapath-windows/ovsext/IpHelper.c
index 0af249e..8ade997 100644
--- a/datapath-windows/ovsext/IpHelper.c
+++ b/datapath-windows/ovsext/IpHelper.c
@@ -369,7 +369,7 @@ OvsGetRoute(SOCKADDR_INET *destinationAddress,
SOCKADDR_INET crtSrcAddr = { 0 };
MIB_IPFORWARD_ROW2 crtRoute = { 0 };
POVS_IPHELPER_INSTANCE crtInstance = NULL;
- WCHAR interfaceName[IF_MAX_STRING_SIZE + 1] = { 0 };
+ WCHAR interfaceName[IF_MAX_STRING_SIZE + 1];
crtInstance = CONTAINING_RECORD(link, OVS_IPHELPER_INSTANCE, link);
@@ -394,11 +394,16 @@ OvsGetRoute(SOCKADDR_INET *destinationAddress,
RtlCopyMemory(route, &crtRoute, sizeof(*route));
*instance = crtInstance;
-
ConvertInterfaceLuidToAlias(&crtInstance->internalRow.InterfaceLuid,
- interfaceName, IF_MAX_STRING_SIZE + 1);
- RtlStringCbLengthW(interfaceName, IF_MAX_STRING_SIZE, &len);
+ status =
+
ConvertInterfaceLuidToAlias(&crtInstance->internalRow.InterfaceLuid,
+ interfaceName,
+ IF_MAX_STRING_SIZE + 1);
+ if (NT_SUCCESS(status)) {
+ status = RtlStringCbLengthW(interfaceName, IF_MAX_STRING_SIZE,
+ &len);
+ }
- if (gOvsSwitchContext != NULL) {
+ if (gOvsSwitchContext != NULL && NT_SUCCESS(status)) {
NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock,
&lockState, 0);
*vport = OvsFindVportByHvNameW(gOvsSwitchContext,
@@ -608,11 +613,11 @@ OvsAddIpInterfaceNotification(PMIB_IPINTERFACE_ROW ipRow)
InitializeListHead(&instance->link);
ExInitializeResourceLite(&instance->lock);
- WCHAR interfaceName[IF_MAX_STRING_SIZE + 1] = { 0 };
+ WCHAR interfaceName[IF_MAX_STRING_SIZE + 1];
status = ConvertInterfaceLuidToAlias(&ipRow->InterfaceLuid,
interfaceName,
IF_MAX_STRING_SIZE + 1);
- if (gOvsSwitchContext == NULL) {
+ if (gOvsSwitchContext == NULL || !NT_SUCCESS(status)) {
goto error;
}
NdisAcquireRWLockRead(gOvsSwitchContext->dispatchLock, &lockState, 0);
--
2.10.2.windows.1
_______________________________________________
Acked-by: Shashank Ram <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev