mirror of https://github.com/redis/redis.git
Fix memory leak in RM_StreamIteratorStop and moduleFreeKeyIterator (#10353)
* Fix memory leak in RM_StreamIteratorStop
* Fix memory leak in moduleFreeKeyIterator
(cherry picked from commit dff153ff24)
This commit is contained in:
parent
ef78757e69
commit
2643c691be
|
|
@ -2284,7 +2284,10 @@ static void moduleCloseKey(RedisModuleKey *key) {
|
||||||
int signal = SHOULD_SIGNAL_MODIFIED_KEYS(key->ctx);
|
int signal = SHOULD_SIGNAL_MODIFIED_KEYS(key->ctx);
|
||||||
if ((key->mode & REDISMODULE_WRITE) && signal)
|
if ((key->mode & REDISMODULE_WRITE) && signal)
|
||||||
signalModifiedKey(key->ctx->client,key->db,key->key);
|
signalModifiedKey(key->ctx->client,key->db,key->key);
|
||||||
if (key->iter) zfree(key->iter);
|
if (key->iter) {
|
||||||
|
streamIteratorStop(key->iter);
|
||||||
|
zfree(key->iter);
|
||||||
|
}
|
||||||
RM_ZsetRangeStop(key);
|
RM_ZsetRangeStop(key);
|
||||||
if (key && key->value && key->value->type == OBJ_STREAM &&
|
if (key && key->value && key->value->type == OBJ_STREAM &&
|
||||||
key->u.stream.signalready) {
|
key->u.stream.signalready) {
|
||||||
|
|
@ -3541,6 +3544,7 @@ int RM_StreamIteratorStop(RedisModuleKey *key) {
|
||||||
errno = EBADF;
|
errno = EBADF;
|
||||||
return REDISMODULE_ERR;
|
return REDISMODULE_ERR;
|
||||||
}
|
}
|
||||||
|
streamIteratorStop(key->iter);
|
||||||
zfree(key->iter);
|
zfree(key->iter);
|
||||||
key->iter = NULL;
|
key->iter = NULL;
|
||||||
return REDISMODULE_OK;
|
return REDISMODULE_OK;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue