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

Reply via email to