[Mesa-dev] [PATCH] glsl/glcpp: fix SIGSEGV when checking error condition for macro redefinition

Samuel Iglesias Gonsálvez siglesias at igalia.com
Thu Jul 23 21:57:09 PDT 2015



On 23/07/15 18:22, Anuj Phogat wrote:
> On Thu, Jul 23, 2015 at 2:19 AM, Samuel Iglesias Gonsalvez
> <siglesias at igalia.com> wrote:
>> Commit a6e9cd14c does not take into account than node_{a,b}->next could be NULL
>> in some circumstances, such as in a shader containing this code:
>>
>>   #define A 1 /* comment */
>>   #define A 1 /* comment */
>>
>> This patch fixes the segmentation fault for cases like that.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91290
>> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
>> Cc: Anuj Phogat <anuj.phogat at gmail.com>
>> Cc: Carl Worth <cworth at cworth.org>
>> ---
>>  src/glsl/glcpp/glcpp-parse.y | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
>> index 7ef4dfd..dd5ec2a 100644
>> --- a/src/glsl/glcpp/glcpp-parse.y
>> +++ b/src/glsl/glcpp/glcpp-parse.y
>> @@ -1074,9 +1074,9 @@ _token_list_equal_ignoring_space (token_list_t *a, token_list_t *b)
>>                  */
>>                 if (node_a->token->type == SPACE
>>                     && node_b->token->type == SPACE) {
>> -                       while (node_a->token->type == SPACE)
>> +                       while (node_a && node_a->token->type == SPACE)
>>                                 node_a = node_a->next;
>> -                       while (node_b->token->type == SPACE)
>> +                       while (node_b && node_b->token->type == SPACE)
>>                                 node_b = node_b->next;
>>                         continue;
>>                 }
>> --
>> 2.1.4
>>
> 
> Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
> 

Thanks!

Sam


More information about the mesa-dev mailing list