diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-07-05 09:19:06 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-07-05 09:19:06 +0900 |
| commit | bd66c5d716eed470957a90bd2851292165550ee1 (patch) | |
| tree | df7f686105677db7625c9ed2b3d38ae2501f5ac0 /src/vm.c | |
| parent | cc01dedc656e77f2b81902fe703537e39776a6ca (diff) | |
| download | mruby-bd66c5d716eed470957a90bd2851292165550ee1.tar.gz mruby-bd66c5d716eed470957a90bd2851292165550ee1.zip | |
Check stack size before accessing env stack; fix #3727
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -2156,7 +2156,8 @@ RETRY_TRY_BLOCK: else { struct REnv *e = uvenv(mrb, lv-1); if (!e || e->cioff == 0 || - (!MRB_ENV_STACK_SHARED_P(e) && e->cxt.mid == 0)) { + (!MRB_ENV_STACK_SHARED_P(e) && e->cxt.mid == 0) || + MRB_ENV_STACK_LEN(e) <= m1+r+m2+1) { localjump_error(mrb, LOCALJUMP_ERROR_YIELD); goto L_RAISE; } |
