mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-18 17:40:26 +01:00
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.
This commit is contained in:
parent
ee5417bca8
commit
ebcc9b5d12
1 changed files with 2 additions and 1 deletions
|
|
@ -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]); \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue