diff mbox

[ovs-dev,33/40] datapath-windows: Check return status when using APIs

Message ID BY2PR0501MB2119BAF7DA4ECA27866FA11EA2AD0@BY2PR0501MB2119.namprd05.prod.outlook.com
State Not Applicable
Headers show

Commit Message

Shashank Ram July 14, 2017, 5:33 p.m. UTC

diff mbox

Patch

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);