wined3d: Better validation of BltFast destination
Stefan Dösinger
stefandoesinger at gmx.at
Wed Jun 23 03:40:30 CDT 2010
Am Dienstag 22 Juni 2010 23:37:20 schrieb Iain Arnell:
> --- a/dlls/wined3d/surface_base.c
> +++ b/dlls/wined3d/surface_base.c
> @@ -1657,6 +1657,11 @@ HRESULT WINAPI
> IWineD3DBaseSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dst
> lock_dst.right = dstx + w;
> lock_dst.bottom = dsty + h;
>
> + if ( lock_dst.left < 0 || lock_dst.top < 0 ) {
> + WARN("Application gave us bad desitination offset for
> BltFast.\n"); + return WINEDDERR_INVALIDRECT;
> + }
You're catching only the GDI surface case here since opengl surfaces don't use
IWineD3DBaseSurfaceImpl_BltFast. I recommend to put this check into ddraw,
like in your previous attempts(but keep checking for < 0, don't do any bit
testing magic like in your old patches)
More information about the wine-devel
mailing list