randr: Check rrPrivKey in RRHasScanoutPixmap()
RRHasScanoutPixmap() is called from xf86CheckHWCursor(), regardless of whether or not RandR has been initialized. As mentioned in commit4226c6d
, it's possible that RandR has not been initialized if the server is configured with Xinerama and there is more than one X screen. Calling rrGetScrPriv when RandR isn't initialized causes an assertion failure that aborts the server: Xorg: ../include/privates.h:121: dixGetPrivateAddr: Assertion key->initialized' failed. Just as in commit4226c6d
, fix the problem by checking dixPrivateKeyRegistered(rrPrivKey) before calling rrGetScrPriv. Signed-off-by: Alex Goins <agoins@nvidia.com>
This commit is contained in:
parent
6172bd2b41
commit
8eeff5d788
|
@ -2012,9 +2012,15 @@ RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable)
|
||||||
Bool
|
Bool
|
||||||
RRHasScanoutPixmap(ScreenPtr pScreen)
|
RRHasScanoutPixmap(ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
rrScrPriv(pScreen);
|
rrScrPrivPtr pScrPriv;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* Bail out if RandR wasn't initialized. */
|
||||||
|
if (!dixPrivateKeyRegistered(rrPrivKey))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
pScrPriv = rrGetScrPriv(pScreen);
|
||||||
|
|
||||||
if (!pScreen->is_output_secondary)
|
if (!pScreen->is_output_secondary)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue