[Mesa-dev] [PATCH] intel: fix potential segfault error at intel_(un)map_texture_image

Yuanhan Liu yuanhan.liu at linux.intel.com
Thu Sep 22 20:14:21 PDT 2011


On Thu, Sep 15, 2011 at 04:02:49PM +0800, Yuanhan Liu wrote:
> 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.

Hello, any comments on this patch.

If no objection, I would like to commit this patch to repo next monday.

Thanks,
Yuanhan Liu
> 
> 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 f979523..cf3aa54 100644
> --- a/src/mesa/drivers/dri/intel/intel_tex.c
> +++ b/src/mesa/drivers/dri/intel/intel_tex.c
> @@ -106,7 +106,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;
>  
> @@ -143,7 +143,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_image->mt->region)
> +      intel_region_unmap(intel, intel_image->mt->region);
>  
>     if (intel_image->stencil_rb) {
>        /*
> -- 
> 1.7.4.4


More information about the mesa-dev mailing list