Check for valid object in GDI_GetObjPtr even for MAGIC_DONTCARE.

This commit is contained in:
Alexandre Julliard 2001-08-27 19:10:06 +00:00
parent c3f2a140cf
commit 89b415f76a
1 changed files with 8 additions and 3 deletions

View File

@ -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 */