diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-26 09:04:30 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-26 09:04:30 +0900 |
| commit | 2daf1987f9b8364bfb464bf1fb335b68b54b6396 (patch) | |
| tree | 63da7e352d25e8ce54616572f2213cb46dab2dd1 /src/load.c | |
| parent | 71f9add1c5a655d6265147be0546d9770ed0f629 (diff) | |
| download | mruby-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.c | 3 |
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); |
