From 3083c5d0c4386cdd7083b7a83ac72fdad2f1e61e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 22 Mar 2010 18:01:17 +0100 Subject: [PATCH] Xext: Fix cursor reference counting hazard. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure the reference count of the new cursor is increased before the old one is decreased, otherwise bad things will happen if they're one and the same and the reference count is 1 initially. Not sure this can actually happen here, but better safe than sorry. Signed-off-by: Michel Dänzer Reviewed-by: Roland Scheidegger Signed-off-by: Keith Packard --- Xext/saver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xext/saver.c b/Xext/saver.c index 2549e8a31..aa2e61428 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -620,10 +620,10 @@ CreateSaverWindow (ScreenPtr pScreen) FreeResource (pWin->drawable.id, RT_NONE); return FALSE; } + pAttr->pCursor->refcnt++; if (pWin->optional->cursor) FreeCursor (pWin->optional->cursor, (Cursor)0); pWin->optional->cursor = pAttr->pCursor; - pAttr->pCursor->refcnt++; pWin->cursorIsNone = FALSE; CheckWindowOptionalNeed (pWin); mask |= CWCursor;