From 09df7cc5ad7b72d8a23c3e22fc718aad8c16f4d3 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Mon, 1 Dec 2008 12:41:10 -0500 Subject: Avoid dereferencing NULL pScreen in xf86CrtcSetModeTransform(). We can get there during PreInit as we set a mode for load detection. At that time there's no pScreen anywhere, so just skip the optimization then. --- hw/xfree86/modes/xf86Crtc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 6a3731c7c..0c069152c 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -294,10 +294,14 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati } else crtc->transformPresent = FALSE; - /* xf86CrtcFitsScreen() relies on these values being correct. */ - /* This should ensure the values are always set at modeset time. */ - pScreen->width = scrn->virtualX; - pScreen->height = scrn->virtualY; + /* We may hit this path during PreInit during load-detcect, at + * which point no pScreens exist yet, so avoid this step. */ + if (pScreen) { + /* xf86CrtcFitsScreen() relies on these values being correct. */ + /* This should ensure the values are always set at modeset time. */ + pScreen->width = scrn->virtualX; + pScreen->height = scrn->virtualY; + } /* Shift offsets that move us out of virtual size */ if (x + mode->HDisplay > xf86_config->maxWidth || -- cgit v1.2.3