Module: wine Branch: master Commit: 10b54a7860fe65765a0dbc4db18ea0c08f2ac5f6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=10b54a7860fe65765a0dbc4db1...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Oct 18 20:46:11 2011 +0200
ddraw: Initialize the surface desc's dwFlags field to 0 before surface locks.
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;