Jactry Zeng : netprofm: Initialize ret value in IEnumNetworkConnections_Next().

Alexandre Julliard julliard at winehq.org
Wed Mar 3 15:47:30 CST 2021


Module: wine
Branch: master
Commit: be41201c0a0fc166334f157a24fa3856e4f07635
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=be41201c0a0fc166334f157a24fa3856e4f07635

Author: Jactry Zeng <jzeng at codeweavers.com>
Date:   Wed Mar  3 13:56:10 2021 +0800

netprofm: Initialize ret value in IEnumNetworkConnections_Next().

Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/netprofm/list.c       |  2 ++
 dlls/netprofm/tests/list.c | 13 ++++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/dlls/netprofm/list.c b/dlls/netprofm/list.c
index f9b9e2ea312..fa94916dd9b 100644
--- a/dlls/netprofm/list.c
+++ b/dlls/netprofm/list.c
@@ -1001,6 +1001,8 @@ static HRESULT WINAPI connections_enum_Next(
 
     TRACE( "%p, %u %p %p\n", iter, count, ret, fetched );
 
+    if (!ret) return E_POINTER;
+    *ret = NULL;
     if (fetched) *fetched = 0;
     if (!count) return S_OK;
 
diff --git a/dlls/netprofm/tests/list.c b/dlls/netprofm/tests/list.c
index ff7755162cc..56052ceb512 100644
--- a/dlls/netprofm/tests/list.c
+++ b/dlls/netprofm/tests/list.c
@@ -229,7 +229,7 @@ static void test_INetworkListManager( void )
     INetworkConnection *conn;
     DWORD cookie;
     HRESULT hr;
-    ULONG ref1, ref2;
+    ULONG ref1, ref2, fetched;
     IID iid;
 
     hr = CoCreateInstance( &CLSID_NetworkListManager, NULL, CLSCTX_INPROC_SERVER,
@@ -355,11 +355,22 @@ static void test_INetworkListManager( void )
     ok( hr == S_OK, "got %08x\n", hr );
     if (conn_iter)
     {
+        fetched = 256;
+        hr = IEnumNetworkConnections_Next( conn_iter, 1, NULL, &fetched );
+        ok( hr == E_POINTER, "got hr %#x.\n", hr );
+        ok( fetched == 256, "got wrong feteched: %d.\n", fetched );
+
+        hr = IEnumNetworkConnections_Next( conn_iter, 0, NULL, &fetched );
+        ok( hr == E_POINTER, "got hr %#x.\n", hr );
+        ok( fetched == 256, "got wrong feteched: %d.\n", fetched );
+
         while ((hr = IEnumNetworkConnections_Next( conn_iter, 1, &conn, NULL )) == S_OK)
         {
             test_INetworkConnection( conn );
             INetworkConnection_Release( conn );
+            conn = (void *)0xdeadbeef;
         }
+        ok( !conn, "got wrong pointer: %p.\n", conn );
         IEnumNetworkConnections_Release( conn_iter );
     }
 




More information about the wine-cvs mailing list