X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Flight.h;h=b97e17b5be4e5f55ad4babd3bd71b124ed47c456;hb=cb3a9f984de6b1a167c60c345d51d55b8c0ca80b;hp=f47fe58a83932f832b9a4358d8ba3f5c1521f1cc;hpb=662fbf8a629d93ae210837fefc0765381bf0b708;p=mesa.git diff --git a/src/mesa/main/light.h b/src/mesa/main/light.h index f47fe58a839..b97e17b5be4 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]); \