Module: wine Branch: master Commit: 644724d32cf832db895c4ed58a1e0ac31363077c URL: http://source.winehq.org/git/wine.git/?a=commit;h=644724d32cf832db895c4ed58a...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Mar 15 16:55:11 2016 +0100
ddraw: Just return an error if we failed to find the predecessor in ddraw_surface_delete_attached_surface().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ddraw/surface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 9e28655..3709b94 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -1982,16 +1982,16 @@ static HRESULT ddraw_surface_delete_attached_surface(struct ddraw_surface *surfa }
/* Find the predecessor of the detached surface */ - while (prev) + while (prev->next_attached != attachment) { - if (prev->next_attached == attachment) - break; - prev = prev->next_attached; + if (!(prev = prev->next_attached)) + { + ERR("Failed to find predecessor of %p.\n", attachment); + wined3d_mutex_unlock(); + return DDERR_SURFACENOTATTACHED; + } }
- /* There must be a surface, otherwise there's a bug */ - assert(prev); - /* Unchain the surface */ prev->next_attached = attachment->next_attached; attachment->next_attached = NULL;