Bug 138383 - [drm] [patch] NULL pointer dereference in mach64_dma_vertex() in file sys/dev/drm/mach64_state.c
Summary: [drm] [patch] NULL pointer dereference in mach64_dma_vertex() in file sys/dev...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 8.0-CURRENT
Hardware: Any Any
: Normal Affects Only Me
Assignee: Christian Brueffer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-31 11:40 UTC by Patroklos Argyroudis
Modified: 2010-01-12 22:33 UTC (History)
0 users

See Also:


Attachments
file.diff (633 bytes, patch)
2009-08-31 11:40 UTC, Patroklos Argyroudis
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Patroklos Argyroudis 2009-08-31 11:40:03 UTC
There is a NULL pointer dereference in mach64_dma_vertex() line 829 in file sys/dev/drm/mach64_state.c.  The check against NULL in line 834 should happen before the dereference of dev_priv.

Fix: Patch attached.

Patch attached with submission follows:
How-To-Repeat: N/A
Comment 1 Christian Brueffer freebsd_committer freebsd_triage 2009-10-21 16:54:51 UTC
State Changed
From-To: open->patched

Committed, thanks! 


Comment 2 Christian Brueffer freebsd_committer freebsd_triage 2009-10-21 16:54:51 UTC
Responsible Changed
From-To: freebsd-bugs->brueffer

MFC reminder.
Comment 3 dfilter service freebsd_committer freebsd_triage 2009-10-21 16:54:59 UTC
Author: brueffer
Date: Wed Oct 21 15:54:45 2009
New Revision: 198332
URL: http://svn.freebsd.org/changeset/base/198332

Log:
  Check pointer for NULL before dereferencing it, not after.
  
  PR:		138383
  Submitted by:	Patroklos Argyroudis <argp@census-labs.com>
  Reviewed by:	rnoland
  MFC after:	1 week

Modified:
  head/sys/dev/drm/mach64_state.c

Modified: head/sys/dev/drm/mach64_state.c
==============================================================================
--- head/sys/dev/drm/mach64_state.c	Wed Oct 21 15:27:48 2009	(r198331)
+++ head/sys/dev/drm/mach64_state.c	Wed Oct 21 15:54:45 2009	(r198332)
@@ -826,7 +826,7 @@ int mach64_dma_vertex(struct drm_device 
 		      struct drm_file *file_priv)
 {
 	drm_mach64_private_t *dev_priv = dev->dev_private;
-	drm_mach64_sarea_t *sarea_priv = dev_priv->sarea_priv;
+	drm_mach64_sarea_t *sarea_priv;
 	drm_mach64_vertex_t *vertex = data;
 
 	LOCK_TEST_WITH_RETURN(dev, file_priv);
@@ -835,6 +835,7 @@ int mach64_dma_vertex(struct drm_device 
 		DRM_ERROR("called with no initialization\n");
 		return -EINVAL;
 	}
+	sarea_priv = dev_priv->sarea_priv;
 
 	DRM_DEBUG("pid=%d buf=%p used=%lu discard=%d\n",
 		  DRM_CURRENTPID,
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 4 Christian Brueffer freebsd_committer freebsd_triage 2010-01-12 22:32:48 UTC
State Changed
From-To: patched->closed

MFCs done.