diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index 81a821d9972..70c1aab3543 100644 --- a/src/mesa/program/prog_statevars.c +++ b/src/mesa/program/prog_statevars.c @@ -1349,10 +1349,12 @@ _mesa_optimize_state_parameters(struct gl_constants *consts, free((char*)list->Parameters[i].Name); /* Remove the merged state vars. */ - memmove(&list->Parameters[first_param + 1], - &list->Parameters[last_param + 1], - sizeof(list->Parameters[0]) * - (list->NumParameters - last_param - 1)); + if (last_param + 1 < list->NumParameters) { + memmove(&list->Parameters[first_param + 1], + &list->Parameters[last_param + 1], + sizeof(list->Parameters[0]) * + (list->NumParameters - last_param - 1)); + } list->NumParameters -= param_diff; } }