Alistair Leslie-Hughes : dpnet: Add pointer tests and checks in EnumServiceProvider.
Alexandre Julliard
julliard at winehq.org
Wed Feb 26 15:45:05 CST 2014
Module: wine
Branch: master
Commit: bf681bff2ef2b11337536e98c73572b09503f412
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bf681bff2ef2b11337536e98c73572b09503f412
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Wed Feb 19 15:08:55 2014 +1100
dpnet: Add pointer tests and checks in EnumServiceProvider.
---
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");
More information about the wine-cvs
mailing list