summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2010-03-22 18:01:17 +0100
committerPeter Hutterer <peter.hutterer@who-t.net>2010-04-09 10:49:56 +1000
commitd33b3bf41b92e088e7aacbbcb01df18bae50baa8 (patch)
tree32a39b08b5eb58896cf2550210109b76f56d8684
parent4520d5cc5faccc5a3b623d4c7e61068431a927cc (diff)
Xext: Fix cursor reference counting hazard.
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 <daenzer@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit 3083c5d0c4386cdd7083b7a83ac72fdad2f1e61e) Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--Xext/saver.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Xext/saver.c b/Xext/saver.c
index 04e6497bd..1f54a2c55 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -618,10 +618,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;