From a09a8ec12d76e1fb1583fa99cf9f48246c108d7b Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 7 Sep 2010 16:25:53 -0700 Subject: glsl: Make sure shader source isn't NULL. This should only occur if glCompileShader is called without a prior call to glShaderSource. An empty source program should be the empty string. --- src/mesa/program/ir_to_mesa.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mesa') diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 1a260c7e53..4f6535fa47 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2755,6 +2755,14 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader) new(shader) _mesa_glsl_parse_state(ctx, shader->Type, shader); const char *source = shader->Source; + /* Check if the user called glCompileShader without first calling + * glShaderSource. This should fail to compile, but not raise a GL_ERROR. + */ + if (source == NULL) { + shader->CompileStatus = GL_FALSE; + return; + } + state->error = preprocess(state, &source, &state->info_log, &ctx->Extensions); -- cgit v1.2.3