[PATCH] windowscodecs: IWICMetadataQueryReader::GetMetadataByName() should accept NULL for returned value.

Dmitry Timoshkov dmitry at baikal.ru
Sun Sep 16 05:01:41 CDT 2018


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/windowscodecs/metadataquery.c  | 2 +-
 dlls/windowscodecs/tests/metadata.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/dlls/windowscodecs/metadataquery.c b/dlls/windowscodecs/metadataquery.c
index 2d7c918921..c4c188d8c9 100644
--- a/dlls/windowscodecs/metadataquery.c
+++ b/dlls/windowscodecs/metadataquery.c
@@ -589,7 +589,7 @@ static HRESULT WINAPI mqr_GetMetadataByName(IWICMetadataQueryReader *iface, LPCW
     PropVariantClear(&tk_id);
     PropVariantClear(&tk_schema);
 
-    if (hr == S_OK)
+    if (hr == S_OK && value)
         *value = new_value;
     else
         PropVariantClear(&new_value);
diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c
index eb846db0b8..b434648fe5 100644
--- a/dlls/windowscodecs/tests/metadata.c
+++ b/dlls/windowscodecs/tests/metadata.c
@@ -1606,6 +1606,10 @@ static void test_metadata_gif(void)
             if (winetest_debug > 1)
                 trace("query: %s\n", decoder_data[i].query);
             MultiByteToWideChar(CP_ACP, 0, decoder_data[i].query, -1, queryW, 256);
+
+            hr = IWICMetadataQueryReader_GetMetadataByName(queryreader, queryW, NULL);
+            ok(hr == decoder_data[i].hr, "GetMetadataByName(%s) returned %#x, expected %#x\n", wine_dbgstr_w(queryW), hr, decoder_data[i].hr);
+
             PropVariantInit(&value);
             hr = IWICMetadataQueryReader_GetMetadataByName(queryreader, queryW, &value);
             ok(hr == decoder_data[i].hr, "GetMetadataByName(%s) returned %#x, expected %#x\n", wine_dbgstr_w(queryW), hr, decoder_data[i].hr);
-- 
2.17.1




More information about the wine-devel mailing list