From dff153ff247478015d0cf93f0f46a222169ac09c Mon Sep 17 00:00:00 2001 From: Vitah Lin Date: Mon, 28 Feb 2022 23:06:39 +0800 Subject: [PATCH] Fix memory leak in RM_StreamIteratorStop and moduleFreeKeyIterator (#10353) * Fix memory leak in RM_StreamIteratorStop * Fix memory leak in moduleFreeKeyIterator --- src/module.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/module.c b/src/module.c index 7130139a6..2946f6229 100644 --- a/src/module.c +++ b/src/module.c @@ -596,7 +596,10 @@ static void moduleFreeKeyIterator(RedisModuleKey *key) { serverAssert(key->iter != NULL); switch (key->value->type) { case OBJ_LIST: listTypeReleaseIterator(key->iter); break; - case OBJ_STREAM: zfree(key->iter); break; + case OBJ_STREAM: + streamIteratorStop(key->iter); + zfree(key->iter); + break; default: serverAssert(0); /* No key->iter for other types. */ } key->iter = NULL; @@ -5103,6 +5106,7 @@ int RM_StreamIteratorStop(RedisModuleKey *key) { errno = EBADF; return REDISMODULE_ERR; } + streamIteratorStop(key->iter); zfree(key->iter); key->iter = NULL; return REDISMODULE_OK;