diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2020-01-08 20:40:45 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2020-01-08 20:40:45 +0200 |
commit | 660a55b365e4ee22f3f0efe69c887e2fd1f71303 (patch) | |
tree | 5c56f2d517b145627e1d637676d2b6177e6ad168 /interpret.h | |
parent | d0b68138521e670178068999dc308ce5beace7ef (diff) | |
download | egawk-660a55b365e4ee22f3f0efe69c887e2fd1f71303.tar.gz egawk-660a55b365e4ee22f3f0efe69c887e2fd1f71303.tar.bz2 egawk-660a55b365e4ee22f3f0efe69c887e2fd1f71303.zip |
Fix a number of memory leaks.
Diffstat (limited to 'interpret.h')
-rw-r--r-- | interpret.h | 5 |
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) { |