diff options
author | Samuel Iglesias Gonsalvez <[email protected]> | 2015-07-23 10:38:36 +0200 |
---|---|---|
committer | Samuel Iglesias Gonsalvez <[email protected]> | 2015-07-24 07:01:13 +0200 |
commit | 30f97b5e52b324d501c56df8902d294fb755a5b7 (patch) | |
tree | 7ee6f4febb349e67d5331bc2d164e3592b441aad | |
parent | 24a7d4e437e27c758c2848e887ceaf1d4a55ae50 (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 <[email protected]>
Reviewed-by: Anuj Phogat <[email protected]>
Cc: [email protected]
-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 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; } |