summaryrefslogtreecommitdiffhomepage
path: root/src/load.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-26 09:04:30 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-11-26 09:04:30 +0900
commit2daf1987f9b8364bfb464bf1fb335b68b54b6396 (patch)
tree63da7e352d25e8ce54616572f2213cb46dab2dd1 /src/load.c
parent71f9add1c5a655d6265147be0546d9770ed0f629 (diff)
downloadmruby-2daf1987f9b8364bfb464bf1fb335b68b54b6396.tar.gz
mruby-2daf1987f9b8364bfb464bf1fb335b68b54b6396.zip
Avoid memory leak when `mrb_read_irep()` fails.
Diffstat (limited to 'src/load.c')
-rw-r--r--src/load.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/load.c b/src/load.c
index 0bd7399ee..23e11d331 100644
--- a/src/load.c
+++ b/src/load.c
@@ -649,12 +649,11 @@ load_irep(mrb_state *mrb, mrb_irep *irep, mrbc_context *c)
MRB_API mrb_value
mrb_load_irep_cxt(mrb_state *mrb, const uint8_t *bin, mrbc_context *c)
{
- struct RData *irep_obj;
+ struct RData *irep_obj = mrb_data_object_alloc(mrb, mrb->object_class, NULL, &tempirep_type);
mrb_irep *irep = mrb_read_irep(mrb, bin);
mrb_value ret;
if (!irep) return mrb_undef_value();
- irep_obj = mrb_data_object_alloc(mrb, mrb->object_class, NULL, &tempirep_type);
irep_obj->data = irep;
mrb_irep_incref(mrb, irep);
ret = load_irep(mrb, irep, c);