diff options
| author | Takeshi Watanabe <[email protected]> | 2018-04-25 13:27:00 +0900 |
|---|---|---|
| committer | Takeshi Watanabe <[email protected]> | 2018-04-25 13:27:00 +0900 |
| commit | e66c99023491107e3d0281af524434f4728e5f74 (patch) | |
| tree | 21954ce88a314885c6163dc03b7986118e095942 /src/array.c | |
| parent | 8bfad558f8eee97b3fcfe2afab3cc84ddb1d15b3 (diff) | |
| download | mruby-e66c99023491107e3d0281af524434f4728e5f74.tar.gz mruby-e66c99023491107e3d0281af524434f4728e5f74.zip | |
Fix array replace leak error in mruby-uri.
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c index bfa6e5f06..2152e292d 100644 --- a/src/array.c +++ b/src/array.c @@ -377,6 +377,9 @@ ary_replace(mrb_state *mrb, struct RArray *a, struct RArray *b) if (ARY_EMBED_P(a)) { ARY_UNSET_EMBED_FLAG(a); } + else { + mrb_free(mrb, a->as.heap.ptr); + } a->as.heap.ptr = b->as.heap.ptr; a->as.heap.len = len; a->as.heap.aux.shared = b->as.heap.aux.shared; |
