<div dir="ltr">From 275d93c9ab0f533fa70d698726afc8adaaefb664 Mon Sep 17 00:00:00 2001<br>From: Adeniyi Mayokun <<a href="mailto:adeniyimayokun17@gmail.com">adeniyimayokun17@gmail.com</a>><br>Date: Wed, 14 Mar 2018 06:50:15 +0100<br>Subject: [PATCH] Ensure 16 byte alignment of data<br><br>Signed-off-by: Adeniyi Mayokun <adeniyimayokun17@gmail.com@<a href="http://gmail.com">gmail.com</a>><br>---<br> dlls/ntdll/heap.c | 9 ++++++---<br> 1 file changed, 6 insertions(+), 3 deletions(-)<br><br>diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c<br>index 57d3d544e5..5469b6fc55 100644<br>--- a/dlls/ntdll/heap.c<br>+++ b/dlls/ntdll/heap.c<br>@@ -54,8 +54,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(heap);<br> typedef struct tagARENA_INUSE<br> {<br>     DWORD  size;                    /* Block size; must be the first field */<br>-    DWORD  magic : 24;              /* Magic number */<br>-    DWORD  unused_bytes : 8;        /* Number of bytes in the block not used by user data (max value is HEAP_MIN_DATA_SIZE+HEAP_MIN_SHRINK_SIZE) */<br>+    DWORD  magic;                   /* Magic number */<br>+    DWORD  unused_bytes;            /* Number of bytes in the block not used by user data (max value is HEAP_MIN_DATA_SIZE+HEAP_MIN_SHRINK_SIZE) */<br>+    DWORD  padding;<br> } ARENA_INUSE;<br> <br> typedef struct tagARENA_FREE<br>@@ -92,9 +93,11 @@ typedef struct<br> <br> /* everything is aligned on 64 byte boundaries */<br> #define ALIGNMENT              64<br>+#define HEADER_ALIGNMENT       16<br> #define LARGE_ALIGNMENT        16  /* large blocks have stricter alignment */<br> <br>-C_ASSERT( sizeof(ARENA_LARGE) % LARGE_ALIGNMENT == 0 );<br>+C_ASSERT( sizeof(ARENA_LARGE) % HEADER_ALIGNMENT == 0 );<br>+C_ASSERT( sizeof(ARENA_INUSE) % HEADER_ALIGNMENT == 0 );<br> <br> #define ROUND_SIZE(size)       ((size + ALIGNMENT - 1) & ~(ALIGNMENT - 1))<br> #define ROUND_DATA_SIZE(size)  (((size + sizeof(ARENA_INUSE) + ALIGNMENT - 1) \<br>-- <br>2.14.1<br><br><br></div>