Zebediah Figura : msdmo: Only return valid GUIDs in IEnumDMO_Next().

Alexandre Julliard julliard at winehq.org
Wed May 9 16:35:12 CDT 2018


Module: wine
Branch: master
Commit: 351c8621b764bfcd52b70e16cf1c1978ccfe9eb4
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=351c8621b764bfcd52b70e16cf1c1978ccfe9eb4

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue May  8 18:55:02 2018 -0500

msdmo: Only return valid GUIDs in IEnumDMO_Next().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msdmo/dmoreg.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/dlls/msdmo/dmoreg.c b/dlls/msdmo/dmoreg.c
index 1944a0a..2161d40 100644
--- a/dlls/msdmo/dmoreg.c
+++ b/dlls/msdmo/dmoreg.c
@@ -117,6 +117,16 @@ static LPWSTR GUIDToString(LPWSTR lpwstr, REFGUID lpcguid)
     return lpwstr;
 }
 
+static HRESULT string_to_guid(const WCHAR *string, GUID *guid)
+{
+    WCHAR buffer[39];
+    buffer[0] = '{';
+    strcpyW(buffer + 1, string);
+    buffer[37] = '}';
+    buffer[38] = 0;
+    return CLSIDFromString(buffer, guid);
+}
+
 static BOOL IsMediaTypeEqual(const DMO_PARTIAL_MEDIATYPE* mt1, const DMO_PARTIAL_MEDIATYPE* mt2)
 {
 
@@ -514,6 +524,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
     UINT count = 0;
     HRESULT hres = S_OK;
     LONG ret;
+    GUID guid;
 
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
 
@@ -537,6 +548,9 @@ static HRESULT WINAPI IEnumDMO_fnNext(
             break;
         }
 
+        if (string_to_guid(szNextKey, &guid) != S_OK)
+            continue;
+
         TRACE("found %s\n", debugstr_w(szNextKey));
 
         if (!(This->dwFlags & DMO_ENUMF_INCLUDE_KEYED))




More information about the wine-cvs mailing list