diff options
| author | Carlo Prelz <[email protected]> | 2016-02-26 09:21:33 +0100 |
|---|---|---|
| committer | Carlo Prelz <[email protected]> | 2016-02-26 09:21:33 +0100 |
| commit | d6cbe1bfc6bb7b21cc779dd48aa042b71c8c94dc (patch) | |
| tree | 2bd47e75f794b8de14ed8c7ba06e0eec39726051 /src/backtrace.c | |
| parent | 0c23d5a353bb3b5c6b8bac00affbb8d12597c41b (diff) | |
| download | mruby-d6cbe1bfc6bb7b21cc779dd48aa042b71c8c94dc.tar.gz mruby-d6cbe1bfc6bb7b21cc779dd48aa042b71c8c94dc.zip | |
The original code crashed when mrb->backtrace.n grew to 16.
It looks like the logic to reallocate the backtrace was flawed,
based on the wrong variable (loc_raw->i, which, as I have verified,
decreases from 16 to 0 instead of increasing)
I am not sure if this is the correct fix
Diffstat (limited to 'src/backtrace.c')
| -rw-r--r-- | src/backtrace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backtrace.c b/src/backtrace.c index 2fce6645d..45a8cc2de 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -330,7 +330,7 @@ save_backtrace_i(mrb_state *mrb, { mrb_backtrace_entry *entry; - if (loc_raw->i >= mrb->backtrace.n_allocated) { + if (mrb->backtrace.n >= mrb->backtrace.n_allocated) { int new_n_allocated; if (mrb->backtrace.n_allocated == 0) { new_n_allocated = 8; |
