diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-01-21 14:52:28 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-02-10 12:39:48 +1000 |
commit | 4f9a36367e7cb54ab9eac3e87fc18ced1a7c8e24 (patch) | |
tree | 5b21a701b02c00b2c3ad705010c98deefbd7742e | |
parent | 1e67b391cce1d8c8f51b0dde6a2f5fe673c547db (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.c | 5 |
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); |