diff options
author | Samuel Iglesias Gonsalvez <siglesias@igalia.com> | 2015-07-23 10:38:36 +0200 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2015-08-01 16:27:39 +0100 |
commit | 56e4cc67fec63d86d76f5b4de55678890cf06648 (patch) | |
tree | 972fbd600ef860ac53e5110ea693fdafad4f6f77 | |
parent | a31dfd91b500735c44bb89e194f02b718299bf2e (diff) |
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 <siglesias@igalia.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 30f97b5e52b324d501c56df8902d294fb755a5b7)
-rw-r--r-- | src/glsl/glcpp/glcpp-parse.y | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index a11b6b2c7c8..15751629e66 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; } |