From bdc8e87c048d11058fc8539c8e68ae2923f26062 Mon Sep 17 00:00:00 2001 From: Po-Hsien Wang Date: Wed, 20 Mar 2019 13:14:53 -0700 Subject: [PATCH] vrend_decode: check vrend_decode_create_sampler_state We support only three mode of mip filter: PIPE_TEX_MIPFILTER_NONE PIPE_TEX_MIPFILTER_LINEAR PIPE_TEX_MIPFILTER_NEAREST Add check to prevent it fall down to other senarios. Reviewed-by: Gurchetan Singh --- src/vrend_decode.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/vrend_decode.c b/src/vrend_decode.c index ba4b228..d6ec385 100644 --- a/src/vrend_decode.c +++ b/src/vrend_decode.c @@ -28,6 +28,7 @@ #include #include "util/u_memory.h" +#include "pipe/p_defines.h" #include "pipe/p_state.h" #include "pipe/p_shader_tokens.h" #include "vrend_renderer.h" @@ -643,6 +644,12 @@ static int vrend_decode_create_sampler_state(struct vrend_decode_ctx *ctx, uint3 for (i = 0; i < 4; i++) state.border_color.ui[i] = get_buf_entry(ctx, VIRGL_OBJ_SAMPLER_STATE_BORDER_COLOR(i)); + + if (state.min_mip_filter != PIPE_TEX_MIPFILTER_NONE && + state.min_mip_filter != PIPE_TEX_MIPFILTER_LINEAR && + state.min_mip_filter != PIPE_TEX_MIPFILTER_NEAREST) + return EINVAL; + return vrend_create_sampler_state(ctx->grctx, handle, &state); }