Skip to content

Commit e31ad36

Browse files
committed
Fix SOURCE Out-Of-Bound issue
1 parent 4073625 commit e31ad36

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/lexer.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ void skip_whitespace(void)
7373
}
7474
if (is_whitespace(next_char) ||
7575
(skip_newline && is_newline(next_char))) {
76-
next_char = dynarr_get_byte(SOURCE, ++source_idx);
76+
if (++source_idx >= SOURCE->size) {
77+
return;
78+
}
79+
next_char = dynarr_get_byte(SOURCE, source_idx);
7780
continue;
7881
}
7982
break;
@@ -82,7 +85,9 @@ void skip_whitespace(void)
8285

8386
char read_char(bool is_skip_space)
8487
{
85-
next_char = dynarr_get_byte(SOURCE, ++source_idx);
88+
if (++source_idx >= SOURCE->size)
89+
return 0;
90+
next_char = dynarr_get_byte(SOURCE, source_idx);
8691
if (is_skip_space)
8792
skip_whitespace();
8893
return next_char;

0 commit comments

Comments
 (0)