From: Yuxuan Shui <yshui@codeweavers.com> lenW is in number of characters, not number of bytes. Found by ASan. --- dlls/setupapi/devinst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index de628d81bd2..668aa6d2864 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -1893,7 +1893,7 @@ BOOL WINAPI SetupDiGetClassDescriptionExA(const GUID *class, char *buffer, DWORD debugstr_guid(class), buffer, buffer_len, required_len, debugstr_a(machine_nameA), reserved); ret = SetupDiGetClassDescriptionExW(class, NULL, 0, &lenW, machine_nameW, reserved); - bufferW = lenW ? malloc(lenW) : NULL; + bufferW = lenW ? malloc(lenW * sizeof(WCHAR)) : NULL; if (bufferW && (ret = SetupDiGetClassDescriptionExW(class, bufferW, lenW, &lenW, machine_nameW, reserved)) && lenW) lenA = WideCharToMultiByte(CP_ACP, 0, bufferW, lenW, buffer, buffer_len, NULL, NULL); free(bufferW); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10401