diff options
author | Michel Dänzer <daenzer@vmware.com> | 2010-03-22 18:01:17 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2010-03-22 10:34:35 -0700 |
commit | 3083c5d0c4386cdd7083b7a83ac72fdad2f1e61e (patch) | |
tree | f6014119615ec54ec6423f9c3c25a2587de4de6d /Xext | |
parent | b29220dc765cb6f878c5466e00e4bd21f3bd803d (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>
Diffstat (limited to 'Xext')
-rw-r--r-- | Xext/saver.c | 2 |
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; |