swr: validate backend state numAttributes

General protection and prevents us from smashing the stack
on the first clear state validation (a7b8d50bcb).  Fixes crash
using icc.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
Tim Rowley 2017-03-15 11:42:43 -05:00
parent 8378c576ab
commit a7ce0490e4
1 changed files with 2 additions and 0 deletions

View File

@ -1651,6 +1651,8 @@ swr_update_derived(struct pipe_context *pipe,
backendState.numAttributes =
((ctx->gs ? ctx->gs->info.base.num_outputs : ctx->vs->info.base.num_outputs) - 1) +
(ctx->rasterizer->sprite_coord_enable ? 1 : 0);
backendState.numAttributes = std::min((size_t)backendState.numAttributes,
sizeof(backendState.numComponents));
for (unsigned i = 0; i < backendState.numAttributes; i++)
backendState.numComponents[i] = 4;
backendState.constantInterpolationMask = ctx->fs->constantMask |