Nikolay Sivov : dwrite: Added parameter check for registering/ unregistering collection loaders.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Oct 14 09:37:29 CDT 2014


Module: wine
Branch: master
Commit: 28e9b3f42121a3828717d72da7c77a14301273b8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=28e9b3f42121a3828717d72da7c77a14301273b8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Oct  8 14:49:12 2014 +0400

dwrite: Added parameter check for registering/unregistering collection loaders.

---

 dlls/dwrite/main.c       | 10 ++++++++--
 dlls/dwrite/tests/font.c |  6 ++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/dwrite/main.c b/dlls/dwrite/main.c
index 033e89a..0379feb 100644
--- a/dlls/dwrite/main.c
+++ b/dlls/dwrite/main.c
@@ -491,11 +491,14 @@ static HRESULT WINAPI dwritefactory_CreateCustomFontCollection(IDWriteFactory *i
 static HRESULT WINAPI dwritefactory_RegisterFontCollectionLoader(IDWriteFactory *iface,
     IDWriteFontCollectionLoader *loader)
 {
-    int i;
     struct dwritefactory *This = impl_from_IDWriteFactory(iface);
+    int i;
 
     TRACE("(%p)->(%p)\n", This, loader);
 
+    if (!loader)
+        return E_INVALIDARG;
+
     for (i = 0; i < This->loader_count; i++)
         if (This->loaders[i] == loader)
             return DWRITE_E_ALREADYREGISTERED;
@@ -527,11 +530,14 @@ static HRESULT WINAPI dwritefactory_RegisterFontCollectionLoader(IDWriteFactory
 static HRESULT WINAPI dwritefactory_UnregisterFontCollectionLoader(IDWriteFactory *iface,
     IDWriteFontCollectionLoader *loader)
 {
-    int i;
     struct dwritefactory *This = impl_from_IDWriteFactory(iface);
+    int i;
 
     TRACE("(%p)->(%p)\n", This, loader);
 
+    if (!loader)
+        return E_INVALIDARG;
+
     for (i = 0; i < This->loader_count; i++)
         if (This->loaders[i] == loader) break;
     if (i == This->loader_count)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c
index 945bfbf..efe3743 100644
--- a/dlls/dwrite/tests/font.c
+++ b/dlls/dwrite/tests/font.c
@@ -855,6 +855,12 @@ static void test_CustomFontCollection(void)
     IDWriteFontCollectionLoader collection2 = { &dwritefontcollectionloadervtbl };
     HRESULT hr;
 
+    hr = IDWriteFactory_RegisterFontCollectionLoader(factory, NULL);
+    ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+
+    hr = IDWriteFactory_UnregisterFontCollectionLoader(factory, NULL);
+    ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+
     hr = IDWriteFactory_RegisterFontCollectionLoader(factory, &collection);
     ok(hr == S_OK, "got 0x%08x\n", hr);
     hr = IDWriteFactory_RegisterFontCollectionLoader(factory, &collection2);




More information about the wine-cvs mailing list