From: Samuel Iglesias Gonsalvez Date: Thu, 23 Jul 2015 08:38:36 +0000 (+0200) Subject: glsl/glcpp: fix SIGSEGV when checking error condition for macro redefinition X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=30f97b5e52b324d501c56df8902d294fb755a5b7;p=mesa.git glsl/glcpp: fix SIGSEGV when checking error condition for macro redefinition 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 Reviewed-by: Anuj Phogat Cc: mesa-stable@lists.freedesktop.org --- diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index 7ef4dfd5316..dd5ec2a30b5 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; }