summaryrefslogtreecommitdiffstats
path: root/src/glsl/glcpp
diff options
context:
space:
mode:
authorSamuel Iglesias Gonsalvez <siglesias@igalia.com>2015-07-23 10:38:36 +0200
committerSamuel Iglesias Gonsalvez <siglesias@igalia.com>2015-07-24 07:01:13 +0200
commit30f97b5e52b324d501c56df8902d294fb755a5b7 (patch)
tree7ee6f4febb349e67d5331bc2d164e3592b441aad /src/glsl/glcpp
parent24a7d4e437e27c758c2848e887ceaf1d4a55ae50 (diff)
downloadexternal_mesa3d-30f97b5e52b324d501c56df8902d294fb755a5b7.zip
external_mesa3d-30f97b5e52b324d501c56df8902d294fb755a5b7.tar.gz
external_mesa3d-30f97b5e52b324d501c56df8902d294fb755a5b7.tar.bz2
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
Diffstat (limited to 'src/glsl/glcpp')
-rw-r--r--src/glsl/glcpp/glcpp-parse.y4
1 files 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;
}