From: Lionel Landwerlin Date: Thu, 13 Jul 2017 15:11:40 +0000 (+0100) Subject: i965: check pointer before dereferencing it X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fd8e8fdbfeb9594946727909a4fb3956733fc3db;p=mesa.git i965: check pointer before dereferencing it Check that irb isn't NULL before accessing irb->Base.Base.NumSamples. CID: 1026046 Signed-off-by: Lionel Landwerlin Reviewed-by: Anuj Phogat --- diff --git a/src/mesa/drivers/dri/i965/intel_tex_copy.c b/src/mesa/drivers/dri/i965/intel_tex_copy.c index e0d5cadb6f6..4fe3585296d 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_copy.c +++ b/src/mesa/drivers/dri/i965/intel_tex_copy.c @@ -52,6 +52,13 @@ intel_copy_texsubimage(struct brw_context *brw, { const GLenum internalFormat = intelImage->base.Base.InternalFormat; + if (!intelImage->mt || !irb || !irb->mt) { + if (unlikely(INTEL_DEBUG & DEBUG_PERF)) + fprintf(stderr, "%s fail %p %p (0x%08x)\n", + __func__, intelImage->mt, irb, internalFormat); + return false; + } + /* No pixel transfer operations (zoom, bias, mapping), just a blit */ if (brw->ctx._ImageTransferState) return false; @@ -69,13 +76,6 @@ intel_copy_texsubimage(struct brw_context *brw, /* glCopyTexSubImage() can't be called on a multisampled texture. */ assert(intelImage->base.Base.NumSamples == 0); - if (!intelImage->mt || !irb || !irb->mt) { - if (unlikely(INTEL_DEBUG & DEBUG_PERF)) - fprintf(stderr, "%s fail %p %p (0x%08x)\n", - __func__, intelImage->mt, irb, internalFormat); - return false; - } - /* account for view parameters and face index */ int dst_level = intelImage->base.Base.Level + intelImage->base.Base.TexObject->MinLevel;