From ce5b33197366b9b73531d13149a3927a8e32c0d2 Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Mon, 16 Nov 2020 16:37:15 +0200 Subject: [PATCH] Fix memory leaks in newly added ZDIFF (#8056) --- src/t_zset.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; }