summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authordearblue <[email protected]>2020-03-30 23:52:59 +0900
committerdearblue <[email protected]>2020-03-30 23:52:59 +0900
commit9b15860ddb184af981440e83c2ae40577b91368b (patch)
tree682d2e5fc45fc45e5fbbf91c5b37ecc2a1fd76bb
parent0dacc9a62a1772362f82e7c53cf18d6223e8a917 (diff)
downloadmruby-9b15860ddb184af981440e83c2ae40577b91368b.tar.gz
mruby-9b15860ddb184af981440e83c2ae40577b91368b.zip
Fix NULL pointer dereferences in mrb_local_variables; fix #4955
However, the behavior of `#call` on the method object of `local_variables` is not corrected.
-rw-r--r--mrbgems/mruby-metaprog/src/metaprog.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mrbgems/mruby-metaprog/src/metaprog.c b/mrbgems/mruby-metaprog/src/metaprog.c
index f00c4493b..b4895a9d1 100644
--- a/mrbgems/mruby-metaprog/src/metaprog.c
+++ b/mrbgems/mruby-metaprog/src/metaprog.c
@@ -139,7 +139,7 @@ mrb_local_variables(mrb_state *mrb, mrb_value self)
proc = mrb->c->ci[-1].proc;
- if (MRB_PROC_CFUNC_P(proc)) {
+ if (proc == NULL || MRB_PROC_CFUNC_P(proc)) {
return mrb_ary_new(mrb);
}
vars = mrb_hash_new(mrb);