dmstyle: IsParamSupported method doesn't crashes on NULL.

Michael Stefaniuc mstefani at redhat.de
Thu Jun 25 17:27:29 CDT 2015


---
 dlls/dmstyle/auditiontrack.c | 4 ++++
 dlls/dmstyle/chordtrack.c    | 4 ++++
 dlls/dmstyle/commandtrack.c  | 4 ++++
 dlls/dmstyle/motiftrack.c    | 4 ++++
 dlls/dmstyle/mutetrack.c     | 4 ++++
 dlls/dmstyle/styletrack.c    | 4 ++++
 dlls/dmstyle/tests/dmstyle.c | 4 ++++
 7 files changed, 28 insertions(+)

diff --git a/dlls/dmstyle/auditiontrack.c b/dlls/dmstyle/auditiontrack.c
index 4e14db0..f237a72 100644
--- a/dlls/dmstyle/auditiontrack.c
+++ b/dlls/dmstyle/auditiontrack.c
@@ -144,6 +144,10 @@ static HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_IsParamSupport
 	ICOM_THIS_MULTI(IDirectMusicAuditionTrack, TrackVtbl, iface);
 
 	TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+        if (!rguidType)
+                return E_POINTER;
+
 	/* didn't find any params */
 	TRACE("param unsupported\n");
 	return DMUS_E_TYPE_UNSUPPORTED;
diff --git a/dlls/dmstyle/chordtrack.c b/dlls/dmstyle/chordtrack.c
index 5ce3eb1..23fe16b 100644
--- a/dlls/dmstyle/chordtrack.c
+++ b/dlls/dmstyle/chordtrack.c
@@ -145,6 +145,10 @@ static HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_IsParamSupported
   ICOM_THIS_MULTI(IDirectMusicChordTrack, TrackVtbl, iface);
   
   TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+  if (!rguidType)
+    return E_POINTER;
+
   if (IsEqualGUID (rguidType, &GUID_BandParam)
       || IsEqualGUID (rguidType, &GUID_ChordParam)
       || IsEqualGUID (rguidType, &GUID_RhythmParam)) {
diff --git a/dlls/dmstyle/commandtrack.c b/dlls/dmstyle/commandtrack.c
index 4cf208b..35415fb 100644
--- a/dlls/dmstyle/commandtrack.c
+++ b/dlls/dmstyle/commandtrack.c
@@ -145,6 +145,10 @@ static HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_IsParamSupporte
 	ICOM_THIS_MULTI(IDirectMusicCommandTrack, TrackVtbl, iface);
 
 	TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+        if (!rguidType)
+                return E_POINTER;
+
 	if (IsEqualGUID (rguidType, &GUID_CommandParam)
 		|| IsEqualGUID (rguidType, &GUID_CommandParam2)
 		|| IsEqualGUID (rguidType, &GUID_CommandParamNext)) {
diff --git a/dlls/dmstyle/motiftrack.c b/dlls/dmstyle/motiftrack.c
index 9a25a05..d0449a7 100644
--- a/dlls/dmstyle/motiftrack.c
+++ b/dlls/dmstyle/motiftrack.c
@@ -144,6 +144,10 @@ static HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_IsParamSupported
 	ICOM_THIS_MULTI(IDirectMusicMotifTrack, TrackVtbl, iface);
 
 	TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+        if (!rguidType)
+                return E_POINTER;
+
 	if (IsEqualGUID (rguidType, &GUID_DisableTimeSig)
 		|| IsEqualGUID (rguidType, &GUID_EnableTimeSig)
 		|| IsEqualGUID (rguidType, &GUID_SeedVariations)
diff --git a/dlls/dmstyle/mutetrack.c b/dlls/dmstyle/mutetrack.c
index 64390f1..3010ad6 100644
--- a/dlls/dmstyle/mutetrack.c
+++ b/dlls/dmstyle/mutetrack.c
@@ -144,6 +144,10 @@ static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported (
 	ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface);
 
 	TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+        if (!rguidType)
+                return E_POINTER;
+
 	if (IsEqualGUID (rguidType, &GUID_MuteParam)) {
 		TRACE("param supported\n");
 		return S_OK;
diff --git a/dlls/dmstyle/styletrack.c b/dlls/dmstyle/styletrack.c
index 39e5a70..69c3889 100644
--- a/dlls/dmstyle/styletrack.c
+++ b/dlls/dmstyle/styletrack.c
@@ -145,6 +145,10 @@ static HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_IsParamSupported
 	ICOM_THIS_MULTI(IDirectMusicStyleTrack, TrackVtbl, iface);
 
 	TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
+
+        if (!rguidType)
+                return E_POINTER;
+
 	if (IsEqualGUID (rguidType, &GUID_DisableTimeSig)
 		|| IsEqualGUID (rguidType, &GUID_EnableTimeSig)
 		|| IsEqualGUID (rguidType, &GUID_IDirectMusicStyle)
diff --git a/dlls/dmstyle/tests/dmstyle.c b/dlls/dmstyle/tests/dmstyle.c
index 0a0c5aa..58c229c 100644
--- a/dlls/dmstyle/tests/dmstyle.c
+++ b/dlls/dmstyle/tests/dmstyle.c
@@ -273,6 +273,10 @@ static void test_track(void)
         }
         ok(hr == S_OK, "%s create failed: %08x, expected S_OK\n", class[i].name, hr);
 
+        /* IDirectMusicTrack8 */
+        hr = IDirectMusicTrack8_IsParamSupported(dmt8, NULL);
+        ok(hr == E_POINTER, "IDirectMusicTrack8_IsParamSupported failed: %08x\n", hr);
+
         /* IPersistStream */
         hr = IDirectMusicTrack8_QueryInterface(dmt8, &IID_IPersistStream, (void**)&ps);
         ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
-- 
2.1.0



More information about the wine-patches mailing list