[PATCH] mfplat: Allow NULL size pointer in IMFAttributes::GetAllocatedBlob().
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/mfplat/main.c | 3 ++- dlls/mfplat/tests/mfplat.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index 08195bca448..24d39d81b62 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -2743,7 +2743,8 @@ HRESULT attributes_GetAllocatedBlob(struct attributes *attributes, REFGUID key, if (SUCCEEDED(hr)) { *buf = attrval.caub.pElems; - *size = attrval.caub.cElems; + if (size) + *size = attrval.caub.cElems; } return hr; diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 8f18fcb293d..3f7ab161b59 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -1749,6 +1749,11 @@ static void test_attributes(void) ok(!memcmp(blob_buf, blob, size), "Unexpected blob.\n"); CoTaskMemFree(blob_buf); + hr = IMFAttributes_GetAllocatedBlob(attributes, &DUMMY_GUID1, &blob_buf, NULL); + ok(hr == S_OK, "Failed to get allocated blob, hr %#lx.\n", hr); + ok(!memcmp(blob_buf, blob, size), "Unexpected blob.\n"); + CoTaskMemFree(blob_buf); + hr = IMFAttributes_GetAllocatedBlob(attributes, &DUMMY_GUID2, &blob_buf, &size); ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr); -- 2.35.1
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=114504 Your paranoid android. === w8adm (32 bit report) === mfplat: mfplat.c:680: Test failed: timeout
participants (2)
-
Marvin -
Nikolay Sivov