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

Author: Edward O'Callaghan <[email protected]>
Date:   Wed Dec  9 20:07:57 2015 +1100

gallium/util: Make u_prims_for_vertices() safe

Let us avoid trapping in hardware from a SIGFPE and instead
assert on a zero divisor.

Hint: This can occur if a PIPE_PRIM_? is not handled in
      u_prim_vertex_count() that results in ' info ' not
      being initialized in the expected manner.

Further, we also fix a possibly NULL pointer dereference
from ' info ' being NULL from a u_prim_vertex_count() call.

Signed-off-by: Edward O'Callaghan <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>

---

 src/gallium/auxiliary/util/u_prim.h |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/auxiliary/util/u_prim.h 
b/src/gallium/auxiliary/util/u_prim.h
index 3668015..a09c315 100644
--- a/src/gallium/auxiliary/util/u_prim.h
+++ b/src/gallium/auxiliary/util/u_prim.h
@@ -145,6 +145,9 @@ u_prims_for_vertices(unsigned prim, unsigned num)
 {
    const struct u_prim_vertex_count *info = u_prim_vertex_count(prim);
 
+   assert(info);
+   assert(info->incr != 0);
+
    if (num < info->min)
       return 0;
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to