aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2020-07-13 16:05:49 +0300
committerArnold D. Robbins <arnold@skeeve.com>2020-07-13 16:05:49 +0300
commit6f3a073ab7b564b34ec214363f50813d68ea623e (patch)
tree395d5cb00059d4b47bbe51ba93338df9cdefb741 /extension
parent6023694f7921a228142427ff99fffd3e72e74889 (diff)
parent0446a2679b81c5e319dfe74074d1b9ab441213f1 (diff)
downloadegawk-6f3a073ab7b564b34ec214363f50813d68ea623e.tar.gz
egawk-6f3a073ab7b564b34ec214363f50813d68ea623e.tar.bz2
egawk-6f3a073ab7b564b34ec214363f50813d68ea623e.zip
Merge branch 'gawk-5.1-stable'
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog6
-rw-r--r--extension/intdiv.c7
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);