[PATCH 5/5] ddraw: Validate the surface pitch for user memory surfaces in ddraw_surface_init().
Henri Verbeet
hverbeet at codeweavers.com
Tue Mar 4 03:21:37 CST 2014
---
dlls/ddraw/surface.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 8cfba29..4a1b112 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -6067,6 +6067,12 @@ HRESULT ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, s
if (desc->dwFlags & DDSD_LPSURFACE)
{
+ if (desc->u1.lPitch < wined3d_surface_get_pitch(wined3d_surface) || desc->u1.lPitch & 3)
+ {
+ WARN("Invalid pitch %u specified.\n", desc->u1.lPitch);
+ return DDERR_INVALIDPARAMS;
+ }
+
if (FAILED(hr = wined3d_surface_update_desc(wined3d_surface, wined3d_desc.width,
wined3d_desc.height, wined3d_desc.format, WINED3D_MULTISAMPLE_NONE, 0,
desc->lpSurface, desc->u1.lPitch)))
--
1.7.10.4
More information about the wine-patches
mailing list