diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-01-23 16:53:31 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-01-23 16:53:31 +0900 |
| commit | f0f095bc135c4d2e6f6d54d6b5683db77708369b (patch) | |
| tree | 81e516765575e393b476c0ae76c6a60ecd698e46 /mrbgems/mruby-compiler/core/codegen.c | |
| parent | 3ce82603a56f2b9480e2bd889dd98f813b868757 (diff) | |
| download | mruby-f0f095bc135c4d2e6f6d54d6b5683db77708369b.tar.gz mruby-f0f095bc135c4d2e6f6d54d6b5683db77708369b.zip | |
Fix a double free problem in codegen.c; fix #3378
This issue was first reported by https://hackerone.com/geeknik
The fix was proposed by @titanous
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index fae12b288..eae0492ce 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -2844,6 +2844,7 @@ scope_finish(codegen_scope *s) memcpy(fname, s->filename, fname_len); fname[fname_len] = '\0'; irep->filename = fname; + irep->own_filename = TRUE; } irep->nlocals = s->nlocals; @@ -2951,9 +2952,6 @@ mrb_generate_code(mrb_state *mrb, parser_state *p) return proc; } MRB_CATCH(&scope->jmp) { - if (scope->filename == scope->irep->filename) { - scope->irep->filename = NULL; - } mrb_irep_decref(mrb, scope->irep); mrb_pool_close(scope->mpool); return NULL; |
