[PATCH 0/1] MR1248: kernel32: null-terminate the atom names passed to NtAddAtom
Adobe Reader XI patches NtAddAtom() and expects the name to be null-terminated Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53872 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1248
From: Evan Tang <etang(a)codeweavers.com> Adobe Reader XI patches NtAddAtom() and expects the name to be null-terminated Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53872 --- dlls/kernel32/atom.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/atom.c b/dlls/kernel32/atom.c index 2330131fb65..5b3128e5c05 100644 --- a/dlls/kernel32/atom.c +++ b/dlls/kernel32/atom.c @@ -110,8 +110,10 @@ ATOM WINAPI GlobalAddAtomA( LPCSTR str /* [in] String to add */ ) { if (!check_integral_atom( str, &atom )) { - WCHAR buffer[MAX_ATOM_LEN]; + /* Note: Adobe Reader XI in protected mode hijacks NtAddAtom and its replacement expects the string to be null terminated. */ + WCHAR buffer[MAX_ATOM_LEN+1]; DWORD len = MultiByteToWideChar( CP_ACP, 0, str, strlen(str), buffer, MAX_ATOM_LEN ); + buffer[len] = 0; if (!len) SetLastError( ERROR_INVALID_PARAMETER ); else if (!set_ntstatus( NtAddAtom( buffer, len * sizeof(WCHAR), &atom ))) atom = 0; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1248
participants (2)
-
Evan Tang -
Evan Tang (@etang-cw)