summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval
diff options
context:
space:
mode:
authordearblue <[email protected]>2021-06-26 10:59:39 +0900
committerdearblue <[email protected]>2021-06-26 10:59:39 +0900
commitcf38fc2f9ef0c1d3bc413bc0febe824d993431dd (patch)
treea58321c9b863c88c9dde4e8cd2ef686556f8018f /mrbgems/mruby-eval
parent5fc301f07d0ce26ab93ff237d15fa81894c9f1d6 (diff)
downloadmruby-cf38fc2f9ef0c1d3bc413bc0febe824d993431dd.tar.gz
mruby-cf38fc2f9ef0c1d3bc413bc0febe824d993431dd.zip
Fix memory leak in `Kernel#eval`
The `mrbc_context` remained unreleased when the `mrb_parse_nstring()` function returned `NULL`.
Diffstat (limited to 'mrbgems/mruby-eval')
-rw-r--r--mrbgems/mruby-eval/src/eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
index 66f4d5283..f1c5c475f 100644
--- a/mrbgems/mruby-eval/src/eval.c
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -65,6 +65,7 @@ create_proc_from_string(mrb_state *mrb, const char *s, mrb_int len, mrb_value bi
/* only occur when memory ran out */
if (!p) {
+ mrbc_context_free(mrb, cxt);
mrb_raise(mrb, E_RUNTIME_ERROR, "Failed to create parser state (out of memory)");
}