diff options
author | Oran Agra <oran@redislabs.com> | 2020-11-16 16:37:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 16:37:15 +0200 |
commit | 9812e88959a37ed4aa95bb4d3fb55c56dc49a768 (patch) | |
tree | 1a5458d0c5e1877d3e9a6c80803d83736b319e82 /src/t_zset.c | |
parent | c1aaad06d85c89ab7abebd5cefab026bdcb086ab (diff) | |
download | redis-9812e88959a37ed4aa95bb4d3fb55c56dc49a768.tar.gz |
Fix memory leaks in newly added ZDIFF (#8056)
Diffstat (limited to 'src/t_zset.c')
-rw-r--r-- | src/t_zset.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/t_zset.c b/src/t_zset.c index 858085a05..5b848a1b9 100644 --- a/src/t_zset.c +++ b/src/t_zset.c @@ -2267,6 +2267,7 @@ static void zdiffAlgorithm1(zsetopsrc *src, long setnum, zset *dstzset, size_t * if (sdslen(tmp) > *maxelelen) *maxelelen = sdslen(tmp); } } + zuiClearIterator(&src[0]); } @@ -2304,7 +2305,7 @@ static void zdiffAlgorithm2(zsetopsrc *src, long setnum, zset *dstzset, size_t * dictAdd(dstzset->dict,tmp,&znode->score); cardinality++; } else { - tmp = zuiNewSdsFromValue(&zval); + tmp = zuiSdsFromValue(&zval); if (zsetRemoveFromSkiplist(dstzset, tmp)) { cardinality--; } @@ -2314,6 +2315,7 @@ static void zdiffAlgorithm2(zsetopsrc *src, long setnum, zset *dstzset, size_t * * of elements will have no effect. */ if (cardinality == 0) break; } + zuiClearIterator(&src[j]); if (cardinality == 0) break; } |