summaryrefslogtreecommitdiffhomepage
path: root/src/backtrace.c
diff options
context:
space:
mode:
authorCarlo Prelz <[email protected]>2016-02-26 09:21:33 +0100
committerCarlo Prelz <[email protected]>2016-02-26 09:21:33 +0100
commitd6cbe1bfc6bb7b21cc779dd48aa042b71c8c94dc (patch)
tree2bd47e75f794b8de14ed8c7ba06e0eec39726051 /src/backtrace.c
parent0c23d5a353bb3b5c6b8bac00affbb8d12597c41b (diff)
downloadmruby-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.c2
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;