From 0446a2679b81c5e319dfe74074d1b9ab441213f1 Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Mon, 13 Jul 2020 16:05:08 +0300 Subject: Fix memory leak in intdiv extension. Update doc. --- extension/ChangeLog | 6 ++++++ extension/intdiv.c | 7 +++++++ 2 files changed, 13 insertions(+) (limited to 'extension') diff --git a/extension/ChangeLog b/extension/ChangeLog index 223b817d..856bff55 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,9 @@ +2020-07-13 Arnold D. Robbins + + * intdiv.c (do_intdiv): Release the quotient and remainder + values when done with them. Fixes a memory leak. Thanks to + Andrew Schorr and valgrind for the report. + 2020-06-10 Arnold D. Robbins Miscellanious fixes from Michael Builov . diff --git a/extension/intdiv.c b/extension/intdiv.c index 4e3ae50d..34b19a02 100644 --- a/extension/intdiv.c +++ b/extension/intdiv.c @@ -223,6 +223,13 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused) array_set_mpz(array, "quotient", 8, quotient); array_set_mpz(array, "remainder", 9, remainder); + /* values were copied, so release out local ones */ + mpz_clear(quotient); + gawk_free(quotient); + + mpz_clear(remainder); + gawk_free(remainder); + /* release temporary variables */ if (numer == numer_tmp) mpz_clear(numer); -- cgit v1.2.3