diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 6 | ||||
-rw-r--r-- | extension/intdiv.c | 7 |
2 files changed, 13 insertions, 0 deletions
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 <arnold@skeeve.com> + + * 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 <arnold@skeeve.com> Miscellanious fixes from Michael Builov <mbuilov@gmail.com>. 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); |