[PATCH 1/5] ddraw: Initialize the surface desc's dwFlags field to 0 before surface locks.

Henri Verbeet hverbeet at codeweavers.com
Tue Oct 18 13:46:11 CDT 2011


Otherwise DDSD2_to_DDSD() would try to convert uninitialized data on failure.
Spotted by Dan Kegel / Valgrind.
---
 dlls/ddraw/surface.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 561bca7..a673806 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -969,6 +969,7 @@ static HRESULT WINAPI ddraw_surface3_Lock(IDirectDrawSurface3 *iface, RECT *rect
     }
 
     surface_desc2.dwSize = surface_desc->dwSize;
+    surface_desc2.dwFlags = 0;
     hr = surface_lock(This, rect, &surface_desc2, flags, h);
     DDSD2_to_DDSD(&surface_desc2, surface_desc);
     surface_desc->dwSize = surface_desc2.dwSize;
@@ -993,6 +994,7 @@ static HRESULT WINAPI ddraw_surface2_Lock(IDirectDrawSurface2 *iface, RECT *rect
     }
 
     surface_desc2.dwSize = surface_desc->dwSize;
+    surface_desc2.dwFlags = 0;
     hr = surface_lock(This, rect, &surface_desc2, flags, h);
     DDSD2_to_DDSD(&surface_desc2, surface_desc);
     surface_desc->dwSize = surface_desc2.dwSize;
@@ -1017,6 +1019,7 @@ static HRESULT WINAPI ddraw_surface1_Lock(IDirectDrawSurface *iface, RECT *rect,
     }
 
     surface_desc2.dwSize = surface_desc->dwSize;
+    surface_desc2.dwFlags = 0;
     hr = surface_lock(This, rect, &surface_desc2, flags, h);
     DDSD2_to_DDSD(&surface_desc2, surface_desc);
     surface_desc->dwSize = surface_desc2.dwSize;
-- 
1.7.3.4




More information about the wine-patches mailing list