Index: win32ss/gdi/ntgdi/bitblt.c =================================================================== --- win32ss/gdi/ntgdi/bitblt.c (revision 75615) +++ win32ss/gdi/ntgdi/bitblt.c (working copy) @@ -382,7 +382,7 @@ ahDC[1] = UsesSource ? hdcSrc : NULL; if (!GDIOBJ_bLockMultipleObjects(2, (HGDIOBJ*)ahDC, apObj, GDIObjType_DC_TYPE)) { - WARN("Invalid dc handle (dest=0x%p, src=0x%p) passed to NtGdiAlphaBlend\n", hdcDest, hdcSrc); + WARN("Invalid dc handle (dest=0x%p, src=0x%p) passed to NtGdiMaskBlt\n", hdcDest, hdcSrc); EngSetLastError(ERROR_INVALID_HANDLE); return FALSE; } @@ -393,7 +393,7 @@ if (NULL == DCDest) { if(DCSrc) DC_UnlockDc(DCSrc); - WARN("Invalid destination dc handle (0x%p) passed to NtGdiBitBlt\n", hdcDest); + WARN("Invalid destination dc handle (0x%p) passed to NtGdiMaskBlt\n", hdcDest); return FALSE; } @@ -1496,7 +1496,9 @@ /* Check if the pixel is outside the surface */ psurfSrc = pdc->dclevel.pSurface; if ((ptlSrc.x >= psurfSrc->SurfObj.sizlBitmap.cx) || - (ptlSrc.y >= psurfSrc->SurfObj.sizlBitmap.cy)) + (ptlSrc.y >= psurfSrc->SurfObj.sizlBitmap.cy) || + (ptlSrc.x < 0) || + (ptlSrc.y < 0)) { /* Fail! */ goto leave;