Alexandre Julliard : kernelbase: Fix alignment of compatibility context elements.
Alexandre Julliard
julliard at winehq.org
Mon May 3 16:37:04 CDT 2021
Module: wine
Branch: master
Commit: ea50d41b3f5f9b3565bfa2831f8f37aeb1824424
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ea50d41b3f5f9b3565bfa2831f8f37aeb1824424
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Apr 30 23:12:16 2021 +0200
kernelbase: Fix alignment of compatibility context elements.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51080
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/version.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/kernelbase/version.c b/dlls/kernelbase/version.c
index 66bd619e394..96349708989 100644
--- a/dlls/kernelbase/version.c
+++ b/dlls/kernelbase/version.c
@@ -168,7 +168,11 @@ static RTL_OSVERSIONINFOEXW current_version;
static BOOL CALLBACK init_current_version(PINIT_ONCE init_once, PVOID parameter, PVOID *context)
{
- /*ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION*/DWORD *acci;
+ struct acci
+ {
+ DWORD ElementCount;
+ COMPATIBILITY_CONTEXT_ELEMENT Elements[1];
+ } *acci;
const struct version_info *ver;
SIZE_T req;
int idx;
@@ -201,13 +205,12 @@ static BOOL CALLBACK init_current_version(PINIT_ONCE init_once, PVOID parameter,
{
do
{
- COMPATIBILITY_CONTEXT_ELEMENT *elements = (COMPATIBILITY_CONTEXT_ELEMENT*)(acci + 1);
- DWORD i, count = *acci;
+ DWORD i;
- for (i = 0; i < count; i++)
+ for (i = 0; i < acci->ElementCount; i++)
{
- if (elements[i].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS &&
- IsEqualGUID(&elements[i].Id, &version_data[idx].guid))
+ if (acci->Elements[i].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS &&
+ IsEqualGUID(&acci->Elements[i].Id, &version_data[idx].guid))
{
ver = &version_data[idx].info;
More information about the wine-cvs
mailing list