summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2010-03-22 18:01:17 +0100
committerKeith Packard <keithp@keithp.com>2010-03-22 10:34:35 -0700
commit3083c5d0c4386cdd7083b7a83ac72fdad2f1e61e (patch)
treef6014119615ec54ec6423f9c3c25a2587de4de6d
parentb29220dc765cb6f878c5466e00e4bd21f3bd803d (diff)
Xext: Fix cursor reference counting hazard.HEADmaster
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>
-rw-r--r--Xext/saver.c2
1 files changed, 1 insertions, 1 deletions
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;