[PATCH 1/1] mfplat: Allow NULL length pointer in IMFAttributes::GetAllocatedString
Andrew Eikum
wine at gitlab.winehq.org
Mon May 9 10:59:37 CDT 2022
From: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at 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 cee052defeb..08195bca448 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -2670,7 +2670,8 @@ HRESULT attributes_GetAllocatedString(struct attributes *attributes, REFGUID key
if (SUCCEEDED(hr))
{
*value = attrval.pwszVal;
- *length = lstrlenW(*value);
+ if (length)
+ *length = lstrlenW(*value);
}
return hr;
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
index 8d21f2ed60e..8f18fcb293d 100644
--- a/dlls/mfplat/tests/mfplat.c
+++ b/dlls/mfplat/tests/mfplat.c
@@ -1638,6 +1638,11 @@ static void test_attributes(void)
ok(hr == S_OK, "Failed to get string length, hr %#lx.\n", hr);
ok(string_length == lstrlenW(stringW), "Unexpected length %u.\n", string_length);
+ hr = IMFAttributes_GetAllocatedString(attributes, &DUMMY_GUID1, &string, NULL);
+ ok(hr == S_OK, "Failed to get allocated string, hr %#lx.\n", hr);
+ ok(!lstrcmpW(string, stringW), "Unexpected string %s.\n", wine_dbgstr_w(string));
+ CoTaskMemFree(string);
+
string_length = 0xdeadbeef;
hr = IMFAttributes_GetAllocatedString(attributes, &DUMMY_GUID1, &string, &string_length);
ok(hr == S_OK, "Failed to get allocated string, hr %#lx.\n", hr);
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/50
More information about the wine-devel
mailing list