mesa: Prevent possible array out-of-bounds access by _mesa_light.
This commit is contained in:
parent
e661bf5018
commit
6130bb1391
|
@ -1043,22 +1043,39 @@ _mesa_PopAttrib(void)
|
|||
_math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxLights; i++) {
|
||||
const struct gl_light *l = &light->Light[i];
|
||||
const struct gl_light *l = &light->Light[i];
|
||||
_mesa_set_enable(ctx, GL_LIGHT0 + i, l->Enabled);
|
||||
_mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
|
||||
_mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
|
||||
_mesa_light(ctx, i, GL_SPECULAR, l->Specular );
|
||||
_mesa_light(ctx, i, GL_POSITION, l->EyePosition);
|
||||
_mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
|
||||
_mesa_light(ctx, i, GL_SPOT_EXPONENT, &l->SpotExponent);
|
||||
_mesa_light(ctx, i, GL_SPOT_CUTOFF, &l->SpotCutoff);
|
||||
_mesa_light(ctx, i, GL_CONSTANT_ATTENUATION,
|
||||
&l->ConstantAttenuation);
|
||||
_mesa_light(ctx, i, GL_LINEAR_ATTENUATION,
|
||||
&l->LinearAttenuation);
|
||||
_mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION,
|
||||
&l->QuadraticAttenuation);
|
||||
}
|
||||
_mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
|
||||
_mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
|
||||
_mesa_light(ctx, i, GL_SPECULAR, l->Specular );
|
||||
_mesa_light(ctx, i, GL_POSITION, l->EyePosition);
|
||||
_mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
|
||||
{
|
||||
GLfloat p[4] = { 0 };
|
||||
p[0] = l->SpotExponent;
|
||||
_mesa_light(ctx, i, GL_SPOT_EXPONENT, p);
|
||||
}
|
||||
{
|
||||
GLfloat p[4] = { 0 };
|
||||
p[0] = l->SpotCutoff;
|
||||
_mesa_light(ctx, i, GL_SPOT_CUTOFF, p);
|
||||
}
|
||||
{
|
||||
GLfloat p[4] = { 0 };
|
||||
p[0] = l->ConstantAttenuation;
|
||||
_mesa_light(ctx, i, GL_CONSTANT_ATTENUATION, p);
|
||||
}
|
||||
{
|
||||
GLfloat p[4] = { 0 };
|
||||
p[0] = l->LinearAttenuation;
|
||||
_mesa_light(ctx, i, GL_LINEAR_ATTENUATION, p);
|
||||
}
|
||||
{
|
||||
GLfloat p[4] = { 0 };
|
||||
p[0] = l->QuadraticAttenuation;
|
||||
_mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION, p);
|
||||
}
|
||||
}
|
||||
/* light model */
|
||||
_mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT,
|
||||
light->Model.Ambient);
|
||||
|
|
Loading…
Reference in New Issue