http://bugs.winehq.org/show_bug.cgi?id=18725
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #10 from Stefan Dösinger stefan@codeweavers.com 2012-02-27 03:44:17 CST --- I ran into this bug while debugging bug 30019. The reason for the crash is that the game passes a DDSURFACEDESC2 with a bad .dwSize to IDirectDrawSurface7::Lock. Our ddraw correctly rejects this lock, then the game dereferences the pointer in .lpSurface. This pointer is not properly set because the lock failed and the game crashes.
I tried to set lpSurface to NULL because other Lock error conditions do that, but this just makes it crash due to a NULL pointer dereference rather than a dereference of a random pointer. I guess the key to fixing this bug is figuring out why the game sometimes sets a bad dwSize.