summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2016-01-21 14:52:28 +0100
committerDave Airlie <airlied@redhat.com>2016-02-10 12:39:48 +1000
commit4f9a36367e7cb54ab9eac3e87fc18ced1a7c8e24 (patch)
tree5b21a701b02c00b2c3ad705010c98deefbd7742e
parent1e67b391cce1d8c8f51b0dde6a2f5fe673c547db (diff)
renderer: check create_shader() finished
Fix found thanks to american fuzzy lop. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-rw-r--r--src/vrend_renderer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index 9bff79a..fa7f4fc 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -2023,6 +2023,11 @@ static int vrend_shader_create(struct vrend_context *ctx,
struct vrend_shader_key key)
{
+ if (!shader->sel->tokens) {
+ report_context_error(ctx, VIRGL_ERROR_CTX_ILLEGAL_SHADER, 0);
+ return -1;
+ }
+
shader->id = glCreateShader(conv_shader_type(shader->sel->type));
shader->compiled_fs_id = 0;
shader->glsl_prog = vrend_convert_shader(&ctx->shader_cfg, shader->sel->tokens, &key, &shader->sel->sinfo);