aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji _at_ gmail.com>2009-04-01 02:22:20 +0900
committergrischka <grischka>2009-04-18 15:07:09 +0200
commitaf6cbc48d16c721a286dba0fd22521624b1d8a52 (patch)
treee70bc8f0485b1a8a4fa0d0c7f9e60baabab66f29
parent040ef000e486ac1e47cde85698878cb06ad34973 (diff)
downloadtinycc-af6cbc48d16c721a286dba0fd22521624b1d8a52.tar.gz
tinycc-af6cbc48d16c721a286dba0fd22521624b1d8a52.tar.bz2
Fix overrun in decl_initializer_alloc.
This bug was reported on http://lists.gnu.org/archive/html/tinycc-devel/2009-03/msg00035.html This happens because parser of array initializer doesn't stop to read until semi-colon or comma.
-rw-r--r--tcc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tcc.c b/tcc.c
index e483d92..9da8260 100644
--- a/tcc.c
+++ b/tcc.c
@@ -9176,9 +9176,11 @@ static void decl_initializer_alloc(CType *type, AttributeDef *ad, int r,
if (tok == '{')
level++;
else if (tok == '}') {
- if (level == 0)
- break;
level--;
+ if (level <= 0) {
+ next();
+ break;
+ }
}
next();
}