Mesa (master): intel: fix potential segfault error at intel_(un) map_texture_image

Yuanhan Liu yliu at kemper.freedesktop.org
Mon Sep 26 01:26:25 UTC 2011


Module: Mesa
Branch: master
Commit: 455a19b1b3d7ca0a40c65d89e45209dbd8ac7b35
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=455a19b1b3d7ca0a40c65d89e45209dbd8ac7b35

Author: Yuanhan Liu <yuanhan.liu at linux.intel.com>
Date:   Mon Sep 26 09:23:06 2011 +0800

intel: fix potential segfault error at intel_(un)map_texture_image

intel_image->mt might be NULL, say with border width set. It then would
trigger a segfault at intel_map/unmap_texture_image function.

This would fix the oglc misctest(basic.textureBorderIgnore) fail.

Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>

---

 src/mesa/drivers/dri/intel/intel_tex.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c
index 8d3cbd6..f8c3f77 100644
--- a/src/mesa/drivers/dri/intel/intel_tex.c
+++ b/src/mesa/drivers/dri/intel/intel_tex.c
@@ -113,7 +113,7 @@ intel_map_texture_image(struct gl_context *ctx,
     * row of blocks.  intel_miptree_get_image_offset() already does
     * the divide.
     */
-   _mesa_get_format_block_size(mt->format, &bw, &bh);
+   _mesa_get_format_block_size(tex_image->TexFormat, &bw, &bh);
    assert(y % bh == 0);
    y /= bh;
 
@@ -150,7 +150,8 @@ intel_unmap_texture_image(struct gl_context *ctx,
    struct intel_context *intel = intel_context(ctx);
    struct intel_texture_image *intel_image = intel_texture_image(tex_image);
 
-   intel_region_unmap(intel, intel_image->mt->region);
+   if (intel_image->mt)
+      intel_region_unmap(intel, intel_image->mt->region);
 
    if (intel_image->stencil_rb) {
       /*




More information about the mesa-commit mailing list