Fix from Eric Anholt in Mesa-current:

[965] Fix potential segfaults from bad realloc.

    C has no order of evaluation restrictions on function arguments, so we
    attempted to realloc from new-size to new-size.
This commit is contained in:
matthieu 2008-04-17 21:21:27 +00:00
parent 42f2fadde6
commit a794a5f85b

View File

@ -524,10 +524,13 @@ static void emit_op3fn(struct tnl_program *p,
GLuint nr = p->program->Base.NumInstructions++;
if (nr >= p->nr_instructions) {
int new_nr_instructions = p->nr_instructions * 2;
p->program->Base.Instructions =
_mesa_realloc(p->program->Base.Instructions,
sizeof(struct prog_instruction) * p->nr_instructions,
sizeof(struct prog_instruction) * (p->nr_instructions *= 2));
sizeof(struct prog_instruction) * new_nr_instructions);
p->nr_instructions = new_nr_instructions;
}
{