From 240ede2918df8c521346fe221cd6937873f67adf Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Fri, 13 Nov 2009 22:20:14 +0100 Subject: [PATCH] Fix invalid memory access in scanner on unbalanced parentheses Fixes bug 601789. --- vala/valascanner.vala | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/vala/valascanner.vala b/vala/valascanner.vala index 109dca03f..9a1d3eabc 100644 --- a/vala/valascanner.vala +++ b/vala/valascanner.vala @@ -624,7 +624,9 @@ public class Vala.Scanner { case '}': type = TokenType.CLOSE_BRACE; current++; - state_stack.length--; + if (state_stack.length > 0) { + state_stack.length--; + } break; case '(': type = TokenType.OPEN_PARENS; @@ -634,7 +636,9 @@ public class Vala.Scanner { case ')': type = TokenType.CLOSE_PARENS; current++; - state_stack.length--; + if (state_stack.length > 0) { + state_stack.length--; + } if (in_template ()) { type = TokenType.COMMA; } @@ -647,7 +651,9 @@ public class Vala.Scanner { case ']': type = TokenType.CLOSE_BRACKET; current++; - state_stack.length--; + if (state_stack.length > 0) { + state_stack.length--; + } break; case '.': type = TokenType.DOT; -- 2.47.3