summaryrefslogtreecommitdiff
path: root/src/t_zset.c
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2020-11-16 16:37:15 +0200
committerGitHub <noreply@github.com>2020-11-16 16:37:15 +0200
commit9812e88959a37ed4aa95bb4d3fb55c56dc49a768 (patch)
tree1a5458d0c5e1877d3e9a6c80803d83736b319e82 /src/t_zset.c
parentc1aaad06d85c89ab7abebd5cefab026bdcb086ab (diff)
downloadredis-9812e88959a37ed4aa95bb4d3fb55c56dc49a768.tar.gz
Fix memory leaks in newly added ZDIFF (#8056)
Diffstat (limited to 'src/t_zset.c')
-rw-r--r--src/t_zset.c4
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;
}