OSDN Git Service

i965: avoid possible crashing android-x86-7.1-r1
authorChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 6 Feb 2018 08:44:06 +0000 (16:44 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 6 Feb 2018 08:44:06 +0000 (16:44 +0800)
src/mesa/drivers/dri/i965/brw_blorp.c
src/mesa/drivers/dri/i965/brw_draw.c
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
src/mesa/drivers/dri/i965/intel_fbo.c

index 7e6b5ce..0b3fe85 100644 (file)
@@ -788,6 +788,7 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
 {
    struct gl_context *ctx = &brw->ctx;
    struct intel_renderbuffer *irb = intel_renderbuffer(rb);
+   if (!irb || !irb->mt) return false;
    mesa_format format = irb->mt->format;
    uint32_t x0, x1, y0, y1;
 
index 611cb86..2663b80 100644 (file)
@@ -386,7 +386,7 @@ brw_postdraw_set_buffers_need_resolve(struct brw_context *brw)
       struct intel_renderbuffer *irb =
          intel_renderbuffer(fb->_ColorDrawBuffers[i]);
 
-      if (!irb)
+      if (!irb || !irb->mt)
          continue;
      
       brw_render_cache_set_add_bo(brw, irb->mt->bo);
index 5806ca1..a6b6af2 100644 (file)
@@ -196,6 +196,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
    struct gl_context *ctx = &brw->ctx;
    struct intel_renderbuffer *irb = intel_renderbuffer(rb);
    struct intel_mipmap_tree *mt = irb->mt;
+   if (!irb || !mt) return 0;
 
    if (brw->gen < 9) {
       assert(!(flags & INTEL_AUX_BUFFER_DISABLED));
index 8accbe9..b8d7102 100644 (file)
@@ -157,6 +157,7 @@ intel_map_renderbuffer(struct gl_context *ctx,
    } else {
       mt = irb->mt;
    }
+   if (!mt) return;
 
    /* For a window-system renderbuffer, we need to flip the mapping we receive
     * upside-down.  So we need to ask for a rectangle on flipped vertically, and