Truncate dest blit rectangle down to surface size.
diff --git a/dlls/ddraw/dsurface/main.c b/dlls/ddraw/dsurface/main.c
index fb66438..d5843e1 100644
--- a/dlls/ddraw/dsurface/main.c
+++ b/dlls/ddraw/dsurface/main.c
@@ -232,7 +232,12 @@
}
}
if (src) assert((xsrc.bottom-xsrc.top) <= sdesc.dwHeight);
- assert((xdst.bottom-xdst.top) <= ddesc.dwHeight);
+
+ /* truncate dst rect to dest surface. */
+ if ((xdst.bottom-xdst.top) > ddesc.dwHeight)
+ xdst.bottom = xdst.top+ddesc.dwHeight;
+ if ((xdst.right-xdst.left) > ddesc.dwWidth)
+ xdst.right = xdst.left+ddesc.dwWidth;
bpp = GET_BPP(ddesc);
srcheight = xsrc.bottom - xsrc.top;