From: Sven Baars Subject: [PATCH v2 2/3] mfplat: Add NULL pointer checks to IMFMediaEvent get methods. Message-Id: <20181117210311.26046-2-sven.wine@gmail.com> Date: Sat, 17 Nov 2018 22:03:10 +0100 In-Reply-To: <20181117210311.26046-1-sven.wine@gmail.com> References: <20181117210311.26046-1-sven.wine@gmail.com> Signed-off-by: Sven Baars --- v2: Added NULL checks to PropVariantCopy instead. dlls/mfplat/main.c | 13 ++++++++++--- dlls/mfplat/tests/mfplat.c | 14 ++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index 46a697538c..312f36d51a 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -2094,6 +2094,9 @@ static HRESULT WINAPI mfmediaevent_GetType(IMFMediaEvent *iface, MediaEventType TRACE("%p, %p\n", This, type); + if (!type) + return E_INVALIDARG; + *type = This->type; return S_OK; @@ -2105,6 +2108,9 @@ static HRESULT WINAPI mfmediaevent_GetExtendedType(IMFMediaEvent *iface, GUID *e TRACE("%p, %p\n", This, extended_type); + if (!extended_type) + return E_INVALIDARG; + *extended_type = This->extended_type; return S_OK; @@ -2116,6 +2122,9 @@ static HRESULT WINAPI mfmediaevent_GetStatus(IMFMediaEvent *iface, HRESULT *stat TRACE("%p, %p\n", This, status); + if (!status) + return E_INVALIDARG; + *status = This->status; return S_OK; @@ -2125,9 +2134,7 @@ static HRESULT WINAPI mfmediaevent_GetValue(IMFMediaEvent *iface, PROPVARIANT *v { mfmediaevent *This = impl_from_IMFMediaEvent(iface); - PropVariantCopy(value, &This->value); - - return S_OK; + return PropVariantCopy(value, &This->value); } static const IMFMediaEventVtbl mfmediaevent_vtbl = diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 48a8d0d361..8b6dd4523f 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -278,6 +278,20 @@ static void test_MFCreateMediaEvent(void) hr = MFCreateMediaEvent(MEError, &GUID_NULL, E_FAIL, &value, &mediaevent); ok(hr == S_OK, "got 0x%08x\n", hr); + hr = IMFMediaEvent_GetType(mediaevent, NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + + hr = IMFMediaEvent_GetExtendedType(mediaevent, NULL); + ok(hr == E_INVALIDARG || + /* wvistau64 */ + broken(hr == S_OK), "got 0x%08x\n", hr); + + hr = IMFMediaEvent_GetStatus(mediaevent, NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + + hr = IMFMediaEvent_GetValue(mediaevent, NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + PropVariantClear(&value); hr = IMFMediaEvent_GetType(mediaevent, &type); -- 2.17.1