On 01/19/2015 04:41 AM, Erik Faye-Lund wrote: > On Mon, Jan 19, 2015 at 12:32 PM, Eduardo Lima Mitev <el...@igalia.com> wrote: >> From: Iago Toral Quiroga <ito...@igalia.com> >> >> Fixes the following 2 dEQP tests: >> dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.max_length_vertex >> dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.max_length_fragment >> --- >> src/glsl/glsl_parser.yy | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy >> index 7fb8c38..165419c 100644 >> --- a/src/glsl/glsl_parser.yy >> +++ b/src/glsl/glsl_parser.yy >> @@ -362,6 +362,13 @@ any_identifier: >> IDENTIFIER >> | TYPE_IDENTIFIER >> | NEW_IDENTIFIER >> + { >> + if (state->es_shader && strlen($1) > 1024) { >> + _mesa_glsl_error(& @1, state, >> + "Identifier `%s' exceeds " >> + "1024 characters", $1); >> + } >> + } > > The limit of 1024 characters for identifiers is only specified for > OpenGL ES Shading Language versions 3.00 and up, not for version 1.00 > as OpenGL ES 2.0 uses. Perhaps a spec bug?
If I had to wager a guess... I'd guess that the limitation was added because shipping ES2 implementations already had such a limit (or just had bugs with very large identifiers). Assuming that's the case, this check should be safe universally. However, checking here defeats the purpose of having such a limitation. It seems like we should do this in the lexer... before rallocing a copy of the large string. > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev