diff --git a/reactos/dll/directx/dsound_new/classfactory.c b/reactos/dll/directx/dsound_new/classfactory.c index ee31e6154cd..64d2f8f6192 100644 --- a/reactos/dll/directx/dsound_new/classfactory.c +++ b/reactos/dll/directx/dsound_new/classfactory.c @@ -86,6 +86,9 @@ IClassFactory_fnCreateInstance( { IClassFactoryImpl *This = (IClassFactoryImpl *)iface; + if (!ppvObject) + return E_INVALIDARG; + *ppvObject = NULL; if ( This->riidInst==NULL || IsEqualCLSID(riid, This->riidInst) || IsEqualCLSID(riid, &IID_IUnknown) ) diff --git a/reactos/dll/directx/dsound_new/directsound.c b/reactos/dll/directx/dsound_new/directsound.c index 12b03cf024c..754f56b0028 100644 --- a/reactos/dll/directx/dsound_new/directsound.c +++ b/reactos/dll/directx/dsound_new/directsound.c @@ -442,6 +442,13 @@ NewDirectSound( LPOLESTR pStr; LPCDirectSoundImpl This; + /* check param */ + if (!ppvObject) + { + /* invalid param */ + return E_INVALIDARG; + } + /* check requested interface */ if (!IsEqualIID(riid, &IID_IUnknown) && !IsEqualIID(riid, &IID_IDirectSound) && !IsEqualIID(riid, &IID_IDirectSound8)) { diff --git a/reactos/dll/directx/dsound_new/dsound.c b/reactos/dll/directx/dsound_new/dsound.c index e8322ebbc31..c88fc00e528 100644 --- a/reactos/dll/directx/dsound_new/dsound.c +++ b/reactos/dll/directx/dsound_new/dsound.c @@ -124,8 +124,7 @@ WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, - LPVOID* ppv -) + LPVOID* ppv) { LPOLESTR pStr, pStr2; UINT i; @@ -153,7 +152,7 @@ DllGetClassObject( DPRINT("No Class Available for %ws IID %ws\n", pStr, pStr2); CoTaskMemFree(pStr); CoTaskMemFree(pStr2); - ASSERT(0); + //ASSERT(0); return CLASS_E_CLASSNOTAVAILABLE; }