[Mesa-dev] [PATCH 1/2] intel: blorp: fix potential NULL pointer dereferences

Lionel Landwerlin lionel.g.landwerlin at intel.com
Mon Oct 9 14:37:00 UTC 2017


CID: 1418616, 1418607
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
 src/intel/blorp/blorp_blit.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index 11c2116a758..84e46d7d31b 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -2343,23 +2343,29 @@ blorp_surf_convert_to_uncompressed(const struct isl_device *isl_dev,
     */
    blorp_surf_convert_to_single_slice(isl_dev, info);
 
-   if (width || height) {
+   if (width) {
 #ifndef NDEBUG
       uint32_t right_edge_px = info->tile_x_sa + *x + *width;
-      uint32_t bottom_edge_px = info->tile_y_sa + *y + *height;
       assert(*width % fmtl->bw == 0 ||
              right_edge_px == info->surf.logical_level0_px.width);
+#endif
+      *width = DIV_ROUND_UP(*width, fmtl->bw);
+   }
+   if (height) {
+#ifndef NDEBUG
+      uint32_t bottom_edge_px = info->tile_y_sa + *y + *height;
       assert(*height % fmtl->bh == 0 ||
              bottom_edge_px == info->surf.logical_level0_px.height);
 #endif
-      *width = DIV_ROUND_UP(*width, fmtl->bw);
       *height = DIV_ROUND_UP(*height, fmtl->bh);
    }
 
-   if (x || y) {
+   if (x) {
       assert(*x % fmtl->bw == 0);
-      assert(*y % fmtl->bh == 0);
       *x /= fmtl->bw;
+   }
+   if (y) {
+      assert(*y % fmtl->bh == 0);
       *y /= fmtl->bh;
    }
 
-- 
2.14.2



More information about the mesa-dev mailing list