diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-01-07 12:24:56 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-01-07 12:26:29 +0900 |
| commit | 392d7fbef9aa64134b33ac562f125df45b450ec0 (patch) | |
| tree | e21f628b2c6006fde1a89d241a57c4918f133d5e /src/array.c | |
| parent | 8c11b04d5c5961c28af44221c91a57a87d03076e (diff) | |
| download | mruby-392d7fbef9aa64134b33ac562f125df45b450ec0.tar.gz mruby-392d7fbef9aa64134b33ac562f125df45b450ec0.zip | |
Add ary_modify() checks; close #3379
This issue was reported by https://hackerone.com/an0n-j
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c index 420907866..99f9fc8b2 100644 --- a/src/array.c +++ b/src/array.c @@ -440,6 +440,7 @@ mrb_ary_pop(mrb_state *mrb, mrb_value ary) { struct RArray *a = mrb_ary_ptr(ary); + ary_modify(mrb, a); if (a->len == 0) return mrb_nil_value(); return a->ptr[--a->len]; } @@ -452,6 +453,7 @@ mrb_ary_shift(mrb_state *mrb, mrb_value self) struct RArray *a = mrb_ary_ptr(self); mrb_value val; + ary_modify(mrb, a); if (a->len == 0) return mrb_nil_value(); if (ARY_SHARED_P(a)) { L_SHIFT: @@ -964,6 +966,7 @@ mrb_ary_clear(mrb_state *mrb, mrb_value self) { struct RArray *a = mrb_ary_ptr(self); + ary_modify(mrb, a); if (ARY_SHARED_P(a)) { mrb_ary_decref(mrb, a->aux.shared); ARY_UNSET_SHARED_FLAG(a); |
