Mesa (7.9): r300g: Null pointer check for buffer deref in gallium winsys

Marek Olšák mareko at kemper.freedesktop.org
Fri Feb 11 01:36:36 UTC 2011


Module: Mesa
Branch: 7.9
Commit: da623c9c44bd71965ca62236485e64cb3c90604d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=da623c9c44bd71965ca62236485e64cb3c90604d

Author: Bryce Harrington <bryce at canonical.com>
Date:   Wed Jan 12 10:06:12 2011 -0800

r300g: Null pointer check for buffer deref in gallium winsys

radeon_drm_bufmgr_create_buffer_from_handle() can return NULL buffers
sometimes (seen when alt-tabbing in compiz).  Avoid dereferencing the
buffer pointer in this case.

Ref.: https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/691653
Also: https://bugzilla.redhat.com/show_bug.cgi?id=660143

Signed-off-by: Bryce Harrington <bryce at canonical.com>

---

 src/gallium/winsys/radeon/drm/radeon_r300.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c b/src/gallium/winsys/radeon/drm/radeon_r300.c
index 420522f..2d1bd1e 100644
--- a/src/gallium/winsys/radeon/drm/radeon_r300.c
+++ b/src/gallium/winsys/radeon/drm/radeon_r300.c
@@ -119,7 +119,7 @@ static struct r300_winsys_buffer *radeon_r300_winsys_buffer_from_handle(struct r
 
     if (stride)
         *stride = whandle->stride;
-    if (size)
+    if (size && _buf)
         *size = _buf->base.size;
 
     return radeon_libdrm_winsys_buffer(_buf);




More information about the mesa-commit mailing list