xf86-video-intel: src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Sat Jun 2 00:56:07 PDT 2012


 src/sna/sna_driver.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

New commits:
commit 58fc03b8c36688e9fa7925aa82b83d36c9decb7e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Jun 2 08:53:24 2012 +0100

    sna: Prevent NULL deref with early termination and DBG enabled
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index f8e386b..a1581f3 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -213,6 +213,7 @@ static Bool sna_create_screen_resources(ScreenPtr screen)
 	return TRUE;
 
 cleanup_front:
+	screen->SetScreenPixmap(NULL);
 	screen->DestroyPixmap(sna->front);
 	sna->front = NULL;
 	return FALSE;
@@ -326,7 +327,8 @@ static int sna_open_drm_master(ScrnInfoPtr scrn)
 	err = drmSetInterfaceVersion(fd, &sv);
 	if (err != 0) {
 		xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-			   "[drm] failed to set drm interface version.\n");
+			   "[drm] failed to set drm interface version: %s [%d].\n",
+			   strerror(-err), -err);
 		drmClose(fd);
 		return -1;
 	}
@@ -362,8 +364,10 @@ static void sna_close_drm_master(ScrnInfoPtr scrn)
 {
 	struct sna_device *dev = sna_device(scrn);
 
-	DBG(("%s(open_count=%d)\n", __FUNCTION__, dev->open_count));
+	if (dev == NULL)
+		return;
 
+	DBG(("%s(open_count=%d)\n", __FUNCTION__, dev->open_count));
 	if (--dev->open_count)
 		return;
 


More information about the xorg-commit mailing list