[1/2] dpnet: Add pointer tests and checks in EnumServiceProvider

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Tue Feb 18 23:03:00 CST 2014


Hi,


Changelog:
     dpnet: Add pointer tests and checks in EnumServiceProvider


Best Regards
  Alistair Leslie-Hughes
-------------- next part --------------
>From 3d8e6e339dfc8789562ba5553803b3dafe9e7146 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed, 19 Feb 2014 15:08:55 +1100
Subject: [PATCH] Add pointer test and check in EnumServiceProvider
To: wine-patches <wine-patches at winehq.org>

---
 dlls/dpnet/peer.c       | 3 +++
 dlls/dpnet/tests/peer.c | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/dlls/dpnet/peer.c b/dlls/dpnet/peer.c
index 7b962a4..02b8d99 100644
--- a/dlls/dpnet/peer.c
+++ b/dlls/dpnet/peer.c
@@ -130,6 +130,9 @@ static HRESULT WINAPI IDirectPlay8PeerImpl_EnumServiceProviders(IDirectPlay8Peer
     TRACE("(%p)->(%p,%p,%p,%p,%p,%x): stub\n", iface, pguidServiceProvider, pguidApplication, pSPInfoBuffer,
                                                pcbEnumData, pcReturned, dwFlags);
 
+    if(!pcReturned || !pcbEnumData)
+        return E_POINTER;
+
     if(!pguidServiceProvider)
     {
         req_size = sizeof(DPN_SERVICE_PROVIDER_INFO) + sizeof(dp_providerW);
diff --git a/dlls/dpnet/tests/peer.c b/dlls/dpnet/tests/peer.c
index d2f0ccf..aea67c9 100644
--- a/dlls/dpnet/tests/peer.c
+++ b/dlls/dpnet/tests/peer.c
@@ -59,6 +59,12 @@ static void test_enum_service_providers(void)
     size = 0;
     items = 0;
 
+    hr = IDirectPlay8Peer_EnumServiceProviders(peer, NULL, NULL, NULL, &size, NULL, 0);
+    ok(hr == E_POINTER, "IDirectPlay8Peer_EnumServiceProviders failed with %x\n", hr);
+
+    hr = IDirectPlay8Peer_EnumServiceProviders(peer, NULL, NULL, NULL, NULL, &items, 0);
+    ok(hr == E_POINTER, "IDirectPlay8Peer_EnumServiceProviders failed with %x\n", hr);
+
     hr = IDirectPlay8Peer_EnumServiceProviders(peer, NULL, NULL, NULL, &size, &items, 0);
     ok(hr == DPNERR_BUFFERTOOSMALL, "IDirectPlay8Peer_EnumServiceProviders failed with %x\n", hr);
     ok(size != 0, "size is unexpectedly 0\n");
-- 
1.8.3.2



More information about the wine-patches mailing list