mesa: Branch 'master'

Nan hai Zou znh at kemper.freedesktop.org
Mon Feb 12 06:14:19 UTC 2007


 src/mesa/main/light.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

New commits:
diff-tree ebcc9b5d12995cc83c032beeff468c5ecb30b33f (from ee5417bca883d82d618e1c0b65011940253555dd)
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Mon Feb 12 12:16:49 2007 +0800

      fd.o #BZ 9684
      gcc may cast an overflowed float value to an negative int value on i386,
      fix it to make sure at least some apps will not crash if it contains wrong normal data.

diff --git a/src/mesa/main/light.h b/src/mesa/main/light.h
index f47fe58..b97e17b 100644
--- a/src/mesa/main/light.h
+++ b/src/mesa/main/light.h
@@ -92,7 +92,8 @@ do {									\
    struct gl_shine_tab *_tab = table;					\
    float f = (dp * (SHINE_TABLE_SIZE-1));				\
    int k = (int) f;							\
-   if (k > SHINE_TABLE_SIZE-2) 						\
+   if (k < 0 /* gcc may cast an overflow float value to negative int value*/ \
+	|| k > SHINE_TABLE_SIZE-2)					\
       result = (GLfloat) _mesa_pow( dp, _tab->shininess );		\
    else									\
       result = _tab->tab[k] + (f-k)*(_tab->tab[k+1]-_tab->tab[k]);	\



More information about the mesa-commit mailing list