diff --git a/dlls/oleaut32/safearray.c b/dlls/oleaut32/safearray.c index d97522a5cf2..090ae9a4c83 100644 --- a/dlls/oleaut32/safearray.c +++ b/dlls/oleaut32/safearray.c @@ -1337,7 +1337,7 @@ HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa) TRACE("(%p)\n", psa); if(!psa) - return E_INVALIDARG; + return S_OK; if(psa->cLocks > 0) return DISP_E_ARRAYISLOCKED; diff --git a/dlls/oleaut32/tests/safearray.c b/dlls/oleaut32/tests/safearray.c index 1bfa894b70b..ebdd6ddea97 100644 --- a/dlls/oleaut32/tests/safearray.c +++ b/dlls/oleaut32/tests/safearray.c @@ -258,6 +258,9 @@ static void test_safearray(void) LONG l; unsigned char *ptr1, *ptr2; + hres = SafeArrayDestroy( NULL); + ok( hres == S_OK, "SafeArrayDestroy( NULL) returned 0x%lx\n", hres); + bound.cElements = 1; bound.lLbound = 0; a = SafeArrayCreate(-1, 1, &bound);