From 28b2fa4b7e1d58fbe394562d7bc782cb679ad80e Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 18 Sep 2017 05:42:54 +0200 Subject: vo_gpu: fix possible segfault in shader_cache.c If shader compilation fails in an unexpected way, it can end up calling renderpass_run on an invalid pass, since current_shader is never cleared. --- video/out/gpu/shader_cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'video') diff --git a/video/out/gpu/shader_cache.c b/video/out/gpu/shader_cache.c index afda9cc036..ead759d931 100644 --- a/video/out/gpu/shader_cache.c +++ b/video/out/gpu/shader_cache.c @@ -871,8 +871,10 @@ static void gl_sc_generate(struct gl_shader_cache *sc, sc->error_state = true; MP_TARRAY_APPEND(sc, sc->entries, sc->num_entries, entry); } - if (sc->error_state) + if (sc->error_state) { + sc->current_shader = NULL; return; + } assert(sc->num_uniforms == entry->num_cached_uniforms); -- cgit v1.2.3