[PATCH v3 0/2] 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> -- v3: Apply 1 suggestion(s) to 1 file(s) 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..90911ea0a10 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/sizeof(WHCAR)] = 0; + } else ret = E_OUTOFMEMORY; } else ret = E_FAIL; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10696
From: Marcus Meissner <meissner@suse.de> Co-authored-by: Vishnunithyasoundhar S <svishnunithyasoundhar@gmail.com> --- dlls/shcore/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/shcore/main.c b/dlls/shcore/main.c index 90911ea0a10..dde2e38f794 100644 --- a/dlls/shcore/main.c +++ b/dlls/shcore/main.c @@ -296,7 +296,7 @@ HRESULT WINAPI GetCurrentProcessExplicitAppUserModelID(WCHAR **appid) *appid = CoTaskMemAlloc( params->WindowTitle.MaximumLength + sizeof(WCHAR)); if (*appid) { memcpy( *appid, params->WindowTitle.Buffer, params->WindowTitle.MaximumLength ); - *appid[params->WindowTitle.MaximumLength/sizeof(WHCAR)] = 0; + *appid[params->WindowTitle.MaximumLength/sizeof(WCHAR)] = 0; } else ret = E_OUTOFMEMORY; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10696
participants (2)
-
Marcus Meissner -
Marcus Meissner (@msmeissn)