From 9163e09605383a88f6e953d6cb5cc2aebe18c84f Mon Sep 17 00:00:00 2001 From: itchyny Date: Fri, 8 May 2020 14:22:25 +0900 Subject: Fix multiple string multiplication --- src/builtin.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/builtin.c b/src/builtin.c index 8533d7e6..35645ea8 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -322,14 +322,15 @@ static jv f_multiply(jq_state *jq, jv input, jv a, jv b) { } int n; size_t alen = jv_string_length_bytes(jv_copy(str)); - jv res = str; + jv res = jv_copy(str); for (n = jv_number_value(num) - 1; n > 0; n--) res = jv_string_append_buf(res, jv_string_value(str), alen); + jv_free(str); jv_free(num); if (n < 0) { - jv_free(str); + jv_free(res); return jv_null(); } return res; -- cgit v1.2.3