summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTakeshi Watanabe <[email protected]>2018-04-25 13:27:00 +0900
committerTakeshi Watanabe <[email protected]>2018-04-25 13:27:00 +0900
commite66c99023491107e3d0281af524434f4728e5f74 (patch)
tree21954ce88a314885c6163dc03b7986118e095942 /src
parent8bfad558f8eee97b3fcfe2afab3cc84ddb1d15b3 (diff)
downloadmruby-e66c99023491107e3d0281af524434f4728e5f74.tar.gz
mruby-e66c99023491107e3d0281af524434f4728e5f74.zip
Fix array replace leak error in mruby-uri.
Diffstat (limited to 'src')
-rw-r--r--src/array.c3
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;