From: Kristian Høgsberg Date: Sun, 28 Oct 2007 09:37:52 +0100 Subject: [PATCH] Fix crash in xf86InitOrigins() In a multihead setup, if only the first screen can be initialized, but the second screen is mentioned first in the ServerLayout section, the xf86InitOrigins() function will crash because the screen referred to in the e.g. "RightOf" part is non-existent. --- --- a/hw/xfree86/common/xf86Cursor.c.init-origins-fix 2004-10-18 22:22:42.675899006 -0400 +++ b/hw/xfree86/common/xf86Cursor.c 2004-10-18 22:21:42.540867549 -0400 @@ -566,6 +566,14 @@ screen = &xf86ConfigLayout.screens[i]; + if (screen->refscreen != NULL && + screen->refscreen->screennum >= xf86NumScreens) { + screensLeft &= ~(1 << i); + xf86Msg(X_WARNING, "Not including screen \"%s\" in origins calculation.\n", + screen->screen->id); + continue; + } + switch(screen->where) { case PosObsolete: OldStyleConfig = TRUE;