]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
nd/adapter: move up check against query length
authorSean Hefty <sean.hefty@intel.com>
Mon, 26 Jul 2010 23:06:51 +0000 (16:06 -0700)
committerSean Hefty <sean.hefty@intel.com>
Tue, 27 Jul 2010 20:56:23 +0000 (13:56 -0700)
Check that the length of pInfo is large enough before
dereferencing it.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
trunk/ulp/netdirect2/user/nd_adapter.cpp

index 34e9fc753b0b085371cfb588ac1b7e78aaf553d1..55fba910e927f2bfcc60979c13865f81530b962b 100644 (file)
@@ -116,16 +116,17 @@ Query(ND_ADAPTER_INFO* pInfo, SIZE_T* pcbInfo)
        WV_DEVICE_ATTRIBUTES attr;\r
        HRESULT hr;\r
 \r
-       if (pInfo != NULL && pInfo->InfoVersion != 1) {\r
-               return ND_NOT_SUPPORTED;\r
-       }\r
-\r
        if (*pcbInfo < sizeof(ND_ADAPTER_INFO)) {\r
                hr = ND_BUFFER_OVERFLOW;\r
                goto out;\r
        }\r
 \r
-       hr = m_pWvDevice->Query(&attr);\r
+       if (pInfo != NULL && pInfo->InfoVersion != 1) {\r
+               hr = ND_NOT_SUPPORTED;\r
+               goto out;\r
+       }\r
+\r
+       hr = NDConvertWVStatus(m_pWvDevice->Query(&attr));\r
        if (FAILED(hr)) {\r
                goto out;\r
        }\r
@@ -157,7 +158,7 @@ Query(ND_ADAPTER_INFO* pInfo, SIZE_T* pcbInfo)
 \r
 out:\r
        *pcbInfo = sizeof(ND_ADAPTER_INFO);\r
-       return NDConvertWVStatus(hr);\r
+       return hr;\r
 }\r
 \r
 STDMETHODIMP CNDAdapter::\r