summaryrefslogtreecommitdiff
path: root/interpret.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2020-01-08 20:40:45 +0200
committerArnold D. Robbins <arnold@skeeve.com>2020-01-08 20:40:45 +0200
commit660a55b365e4ee22f3f0efe69c887e2fd1f71303 (patch)
tree5c56f2d517b145627e1d637676d2b6177e6ad168 /interpret.h
parentd0b68138521e670178068999dc308ce5beace7ef (diff)
downloadgawk-660a55b365e4ee22f3f0efe69c887e2fd1f71303.tar.gz
Fix a number of memory leaks.
Diffstat (limited to 'interpret.h')
-rw-r--r--interpret.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/interpret.h b/interpret.h
index 6cfff3a6..4a7979bd 100644
--- a/interpret.h
+++ b/interpret.h
@@ -741,7 +741,10 @@ mod:
if (t1 != *lhs) {
unref(*lhs);
- *lhs = dupnode(t1);
+ if (t1->valref == 1)
+ *lhs = t1;
+ else
+ *lhs = dupnode(t1);
}
if (t1 != t2 && t1->valref == 1 && (t1->flags & (MALLOC|MPFN|MPZN)) == MALLOC) {