From: Bernhard Übelacker bernhardu@mailbox.org
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55928 --- dlls/ntdll/tests/info.c | 2 ++ dlls/ntdll/unix/system.c | 1 + dlls/wow64/system.c | 1 + 3 files changed, 4 insertions(+)
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c index ac979760433..f63ddf4116e 100644 --- a/dlls/ntdll/tests/info.c +++ b/dlls/ntdll/tests/info.c @@ -662,6 +662,8 @@ static void test_query_process( BOOL extended ) } }
+ ok(((INT_PTR)spi & 7) == 0, "Record is not aligned at 8 byte boundary. %p\n", spi); + if (!spi->NextEntryOffset) { winetest_pop_context(); diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c index d3983c0dffb..f951bb197a3 100644 --- a/dlls/ntdll/unix/system.c +++ b/dlls/ntdll/unix/system.c @@ -2879,6 +2879,7 @@ C_ASSERT( sizeof(struct process_info) <= sizeof(SYSTEM_PROCESS_INFORMATION) );
proc_len = sizeof(*nt_process) + server_process->thread_count * thread_info_size + (name_len + 1) * sizeof(WCHAR); + proc_len = (proc_len + 7) & ~7; *len += proc_len;
if (*len <= size) diff --git a/dlls/wow64/system.c b/dlls/wow64/system.c index ffa82054b9a..539bc1054ea 100644 --- a/dlls/wow64/system.c +++ b/dlls/wow64/system.c @@ -177,6 +177,7 @@ static NTSTATUS put_system_proc_info( SYSTEM_PROCESS_INFORMATION32 *info32, prev = proc32; } outpos += proc_len + proc->ProcessName.MaximumLength; + outpos = (outpos + 7) & ~7; inpos += proc->NextEntryOffset; if (!proc->NextEntryOffset) break; }