[PATCH v2 2/3] mfplat: Add NULL pointer checks to IMFMediaEvent get methods.
Sven Baars
sven.wine at gmail.com
Sat Nov 17 15:03:10 CST 2018
Signed-off-by: Sven Baars <sven.wine at gmail.com>
---
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
More information about the wine-devel
mailing list