Xext: Fix cursor reference counting hazard.

Roland Scheidegger rscheidegger_lists at hispeed.ch
Tue Mar 16 08:13:54 PDT 2010


On 12.03.2010 16:29, Michel Dänzer wrote:
> From: Michel Dänzer <daenzer at vmware.com>
> 
> 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 at vmware.com>

Reviewed-by: Roland Scheidegger <sroland at vmware.com>

> ---
>  Xext/saver.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/Xext/saver.c b/Xext/saver.c
> index 2549e8a..aa2e614 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;



More information about the xorg-devel mailing list