From eb812921ac3a9b43e2cdd5dc65db34ba3fe9189b Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 9 Nov 2015 14:51:56 -0700 Subject: [PATCH] st/wgl: fix locking issue in stw_st_framebuffer_present_locked() When stw_st_framebuffer_present_locked() is called, the stw_framebuffer's mutex will already be locked. Normally, the stw_framebuffer_present_locked() function calls stw_framebuffer_release() to unlock the mutex when it's done. But if for some reason the 'resource' pointer in stw_st_framebuffer_present_locked() is null, we'd return without unlocking the stw_framebuffer. This fixes that to avoid potential deadlocks. Reviewed-by: Charmaine Lee --- src/gallium/state_trackers/wgl/stw_st.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/state_trackers/wgl/stw_st.c b/src/gallium/state_trackers/wgl/stw_st.c index b41171a9195..2d5d4379932 100644 --- a/src/gallium/state_trackers/wgl/stw_st.c +++ b/src/gallium/state_trackers/wgl/stw_st.c @@ -169,6 +169,9 @@ stw_st_framebuffer_present_locked(HDC hdc, if (resource) { stw_framebuffer_present_locked(hdc, stwfb->fb, resource); } + else { + stw_framebuffer_release(stwfb->fb); + } return TRUE; } -- 2.30.2