Module: Mesa Branch: master Commit: b8e44f648eac07d9a8c113b19a9097626c24a61f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b8e44f648eac07d9a8c113b19a9097626c24a61f
Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Fri Feb 25 23:32:48 2011 +0100 i915g: fix null deref in draw_rect emission Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch> --- src/gallium/drivers/i915/i915_state_emit.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/i915/i915_state_emit.c b/src/gallium/drivers/i915/i915_state_emit.c index 510fb1c..a9a9d7f 100644 --- a/src/gallium/drivers/i915/i915_state_emit.c +++ b/src/gallium/drivers/i915/i915_state_emit.c @@ -413,7 +413,6 @@ i915_emit_hardware_state(struct i915_context *i915 ) { uint w, h; struct pipe_surface *cbuf_surface = i915->framebuffer.cbufs[0]; - struct i915_texture *tex = i915_texture(cbuf_surface->texture); unsigned x, y; int layer; uint32_t draw_offset; @@ -422,10 +421,15 @@ i915_emit_hardware_state(struct i915_context *i915 ) ret = framebuffer_size(&i915->framebuffer, &w, &h); assert(ret); - layer = cbuf_surface->u.tex.first_layer; + if (cbuf_surface) { + struct i915_texture *tex = i915_texture(cbuf_surface->texture); + layer = cbuf_surface->u.tex.first_layer; + + x = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksx; + y = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksy; - x = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksx; - y = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksy; + } else + x = y = 0; draw_offset = x | (y << 16); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit