[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