From 89b415f76a280b28ced45b3c2d1b1236179cfd24 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 27 Aug 2001 19:10:06 +0000 Subject: [PATCH] Check for valid object in GDI_GetObjPtr even for MAGIC_DONTCARE. --- objects/gdiobj.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/objects/gdiobj.c b/objects/gdiobj.c index c667902e2d6..441871c2230 100644 --- a/objects/gdiobj.c +++ b/objects/gdiobj.c @@ -390,10 +390,15 @@ void *GDI_GetObjPtr( HGDIOBJ handle, WORD magic ) if (handle & 2) /* GDI heap handle */ { ptr = (GDIOBJHDR *)LOCAL_Lock( GDI_HeapSel, handle ); - if (ptr && (magic != MAGIC_DONTCARE) && (GDIMAGIC(ptr->wMagic) != magic)) + if (ptr) { - LOCAL_Unlock( GDI_HeapSel, handle ); - ptr = NULL; + if (((magic != MAGIC_DONTCARE) && (GDIMAGIC(ptr->wMagic) != magic)) || + (GDIMAGIC(ptr->wMagic) < FIRST_MAGIC) || + (GDIMAGIC(ptr->wMagic) > LAST_MAGIC)) + { + LOCAL_Unlock( GDI_HeapSel, handle ); + ptr = NULL; + } } } else /* large heap handle */ -- 2.11.4.GIT