Author: tkreuzer Date: Thu Feb 28 11:30:20 2013 New Revision: 58378
URL: http://svn.reactos.org/svn/reactos?rev=58378&view=rev Log: [NTDLL_WINETEST] CORE-6977 #comment Make sure the buffer for NtQueryInformationAtom is ULONG aligned. Fixes failed atom tests on ReactOS and Windows when compiled with GCC 4.7.2. Should be sent to wine. Keeping the jira issue open.
Modified: trunk/rostests/winetests/ntdll/atom.c
Modified: trunk/rostests/winetests/ntdll/atom.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/ntdll/atom.c?rev... ============================================================================== --- trunk/rostests/winetests/ntdll/atom.c [iso-8859-1] (original) +++ trunk/rostests/winetests/ntdll/atom.c [iso-8859-1] Thu Feb 28 11:30:20 2013 @@ -25,7 +25,7 @@ #include <stdarg.h>
#include "ntstatus.h" -/* Define WIN32_NO_STATUS so MSVC does not give us duplicate macro +/* Define WIN32_NO_STATUS so MSVC does not give us duplicate macro * definition errors when we get to winnt.h */ #define WIN32_NO_STATUS @@ -432,7 +432,7 @@ { NTSTATUS res; RTL_ATOM atom; - char ptr[sizeof(ATOM_BASIC_INFORMATION) + 255 * sizeof(WCHAR)]; + ULONG ptr[(sizeof(ATOM_BASIC_INFORMATION) + 255 * sizeof(WCHAR) + sizeof(ULONG)) / sizeof(ULONG)]; ATOM_BASIC_INFORMATION* abi = (ATOM_BASIC_INFORMATION*)ptr; ULONG ptr_size = sizeof(ATOM_BASIC_INFORMATION) + 255 * sizeof(WCHAR);
@@ -445,7 +445,7 @@
memset( ptr, 0xcc, sizeof(ptr) ); res = pNtQueryInformationAtom( atom, AtomBasicInformation, (void*)ptr, ptr_size, NULL ); - ok(!res, "atom lookup\n"); + ok(!res, "atom lookup failed with status = 0x%x\n", res); ok(!lstrcmpW(abi->Name, testAtom1), "ok strings\n"); ok(abi->NameLength == lstrlenW(testAtom1) * sizeof(WCHAR), "wrong string length\n"); ok(abi->Name[lstrlenW(testAtom1)] == 0, "wrong string termination %x\n", abi->Name[lstrlenW(testAtom1)]);