Mesa (main): iris: Fix Null pointer dereferences

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 4 09:10:50 UTC 2021


Module: Mesa
Branch: main
Commit: d16b9b27b0f2fdc3416b4c50c16711c5eec063b2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d16b9b27b0f2fdc3416b4c50c16711c5eec063b2

Author: Sergii Melikhov <sergii.v.melikhov at globallogic.com>
Date:   Mon Aug  2 15:15:34 2021 +0300

iris: Fix Null pointer dereferences

Fix the error from Coverity report: CID 1489765

Signed-off-by: Sergii Melikhov <sergii.v.melikhov at globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12179>

---

 src/gallium/drivers/iris/iris_program.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index f4a1e688e9c..f67be3f47eb 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -1372,9 +1372,9 @@ iris_update_compiled_vs(struct iris_context *ice)
                                 IRIS_STAGE_DIRTY_CONSTANTS_VS;
       shs->sysvals_need_upload = true;
 
-      const struct brw_vue_prog_data *vue_prog_data =
-         (void *) shader->prog_data;
-      check_urb_size(ice, vue_prog_data->urb_entry_size, MESA_SHADER_VERTEX);
+      unsigned urb_entry_size = shader ?
+         ((struct brw_vue_prog_data *) shader->prog_data)->urb_entry_size : 0;
+      check_urb_size(ice, urb_entry_size, MESA_SHADER_VERTEX);
    }
 }
 
@@ -1604,8 +1604,9 @@ iris_update_compiled_tcs(struct iris_context *ice)
                                 IRIS_STAGE_DIRTY_CONSTANTS_TCS;
       shs->sysvals_need_upload = true;
 
-      const struct brw_vue_prog_data *prog_data = (void *) shader->prog_data;
-      check_urb_size(ice, prog_data->urb_entry_size, MESA_SHADER_TESS_CTRL);
+      unsigned urb_entry_size = shader ?
+         ((struct brw_vue_prog_data *) shader->prog_data)->urb_entry_size : 0;
+      check_urb_size(ice, urb_entry_size, MESA_SHADER_TESS_CTRL);
    }
 }
 
@@ -1730,8 +1731,9 @@ iris_update_compiled_tes(struct iris_context *ice)
                                 IRIS_STAGE_DIRTY_CONSTANTS_TES;
       shs->sysvals_need_upload = true;
 
-      const struct brw_vue_prog_data *prog_data = (void *) shader->prog_data;
-      check_urb_size(ice, prog_data->urb_entry_size, MESA_SHADER_TESS_EVAL);
+      unsigned urb_entry_size = shader ?
+         ((struct brw_vue_prog_data *) shader->prog_data)->urb_entry_size : 0;
+      check_urb_size(ice, urb_entry_size, MESA_SHADER_TESS_EVAL);
    }
 
    /* TODO: Could compare and avoid flagging this. */



More information about the mesa-commit mailing list