From: Dmitry Timoshkov Subject: [PATCH] windowscodecs: IWICMetadataQueryReader::GetMetadataByName() should accept NULL for returned value. Message-Id: <20180916180141.d4a3181766ba2101aaa8b8c5@baikal.ru> Date: Sun, 16 Sep 2018 18:01:41 +0800 Signed-off-by: Dmitry Timoshkov --- 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