[Mesa-dev] [PATCH] svga: Disable bogus assertions concerning min_index/max_index.

jfonseca at vmware.com jfonseca at vmware.com
Fri Mar 9 09:24:22 PST 2012


From: José Fonseca <jfonseca at vmware.com>

min_index/max_index are merely conservative guesses, so we can't
make buffer overflow detection based on their values.
---
 src/gallium/drivers/svga/svga_draw.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c
index c43d1a3..41e0e1a 100644
--- a/src/gallium/drivers/svga/svga_draw.c
+++ b/src/gallium/drivers/svga/svga_draw.c
@@ -310,12 +310,6 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
          assert(size);
          assert(offset < size);
          assert(min_index <= max_index);
-         if (index_bias >= 0) {
-            assert(offset + index_bias*stride < size);
-         }
-         if (min_index != ~0 && index_bias >= 0) {
-            assert(offset + (index_bias + min_index) * stride < size);
-         }
 
          switch (hwtnl->cmd.vdecl[i].identity.type) {
          case SVGA3D_DECLTYPE_FLOAT1:
@@ -375,9 +369,14 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
             break;
          }
 
-         if (max_index != ~0) {
-            assert(offset + (index_bias + max_index) * stride + width <= size);
+         if (index_bias >= 0) {
+            assert(offset + index_bias*stride + width <= size);
          }
+
+         /*
+          * min_index/max_index are merely conservative guesses, so we can't
+          * make buffer overflow detection based on their values.
+          */
       }
 
       assert(range->indexWidth == range->indexArray.stride);
-- 
1.7.9.1



More information about the mesa-dev mailing list