mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Fix out of bound access in parse.y.
This commit is contained in:
@@ -284,7 +284,7 @@ local_var_p(parser_state *p, mrb_sym sym)
|
||||
int i;
|
||||
|
||||
if (!v) break;
|
||||
for (i=0; i < ir->nlocals; i++) {
|
||||
for (i=0; i+1 < ir->nlocals; i++) {
|
||||
if (v[i] == sym) return TRUE;
|
||||
}
|
||||
if (MRB_PROC_SCOPE_P(u)) break;
|
||||
|
||||
@@ -347,7 +347,7 @@ local_var_p(parser_state *p, mrb_sym sym)
|
||||
int i;
|
||||
|
||||
if (!v) break;
|
||||
for (i=0; i < ir->nlocals; i++) {
|
||||
for (i=0; i+1 < ir->nlocals; i++) {
|
||||
if (v[i] == sym) return TRUE;
|
||||
}
|
||||
if (MRB_PROC_SCOPE_P(u)) break;
|
||||
|
||||
+1
-1
@@ -434,7 +434,7 @@ read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep, size_t *rec
|
||||
|
||||
irep->lv = lv = (mrb_sym*)mrb_malloc(mrb, sizeof(mrb_sym) * (irep->nlocals - 1));
|
||||
|
||||
for (i = 0; i + 1< irep->nlocals; ++i) {
|
||||
for (i = 0; i + 1 < irep->nlocals; ++i) {
|
||||
uint16_t const sym_idx = bin_to_uint16(bin);
|
||||
bin += sizeof(uint16_t);
|
||||
if (sym_idx == RITE_LV_NULL_MARK) {
|
||||
|
||||
Reference in New Issue
Block a user