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 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
