[PATCH] kernel32: Bug 8241 Mask out obsolete flags in GlobalAlloc

Peter Hedlund peter at peterandlinda.com
Tue May 19 16:41:31 CDT 2009


Changelog:
    - Mask out obsolete flags in GlobalAlloc

Hello,

The attached patch masks out obsolete flags in GlobalAlloc().

This will allow programs erroneously setting such flags to run. Examples 
discussed in the bug report include GraphPad Prism 3, 4, and 5.

Test in dlls/kernel32/tests pass OK on Wine.

Thanks,
Peter Hedlund
-------------- next part --------------
From f12efc17665d84d43530ea25a7a344b318a276a0 Mon Sep 17 00:00:00 2001
From: Peter Hedlund <peter at peterandlinda.com>
Date: Tue, 19 May 2009 10:55:16 -0700
Subject: Mask out obsolete flags in GlobalAlloc.

BUG:8241
---
 dlls/kernel32/heap.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c
index c08fb51..503d0fe 100644
--- a/dlls/kernel32/heap.c
+++ b/dlls/kernel32/heap.c
@@ -375,6 +375,16 @@ HGLOBAL WINAPI GlobalAlloc(
       pintern = HeapAlloc(GetProcessHeap(), 0, sizeof(GLOBAL32_INTERN));
       if (pintern)
       {
+          /* Mask out obsolete flags */
+          flags &= ~(GMEM_DDESHARE |
+                     GMEM_DISCARDABLE |
+                     GMEM_LOWER |
+                     GMEM_NOCOMPACT |
+                     GMEM_NODISCARD |
+                     GMEM_NOT_BANKED |
+                     GMEM_NOTIFY |
+                     GMEM_SHARE);
+
           pintern->Magic = MAGIC_GLOBAL_USED;
           pintern->Flags = flags >> 8;
           pintern->LockCount = 0;
-- 
1.6.2.2



More information about the wine-patches mailing list