[PATCH 0/1] MR10696: shcore: 0 terminate params->WindowTitle when turning into WCHAR
WindowTitle is not necessarily NUL terminated. Reported-By: Dirk Mueller <dmueller@suse.de> Found-by: Gemini 3.1 Pro Signed-off-by: Marcus Meissner <marcus@jet.franken.de> -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10696
From: Marcus Meissner <marcus@jet.franken.de> WindowTitle is not necessarily NUL terminated. Reported-By: Dirk Mueller <dmueller@suse.de> Found-by: Gemini 3.1 Pro Signed-off-by: Marcus Meissner <marcus@jet.franken.de> --- dlls/shcore/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/shcore/main.c b/dlls/shcore/main.c index ea911288c6e..ec97d0231e3 100644 --- a/dlls/shcore/main.c +++ b/dlls/shcore/main.c @@ -293,8 +293,11 @@ HRESULT WINAPI GetCurrentProcessExplicitAppUserModelID(WCHAR **appid) params = RtlGetCurrentPeb()->ProcessParameters; if (params->dwFlags & STARTF_TITLEISAPPID) { - *appid = CoTaskMemAlloc( params->WindowTitle.MaximumLength ); - if (*appid) wcscpy( *appid, params->WindowTitle.Buffer ); + *appid = CoTaskMemAlloc( params->WindowTitle.MaximumLength + sizeof(WCHAR)); + if (*appid) { + memcpy( *appid, params->WindowTitle.Buffer, params->WindowTitle.MaximumLength ); + *appid[params->WindowTitle.MaximumLength] = 0; + } else ret = E_OUTOFMEMORY; } else ret = E_FAIL; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10696
participants (2)
-
Marcus Meissner -
Marcus Meissner (@msmeissn)