From: antirez Date: Fri, 23 Mar 2012 19:21:19 +0000 (+0100) Subject: Fixed memory leak in hash loading. X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/9b962d10a4e65fc0bb50d1a4476fdc9503ca1b53 Fixed memory leak in hash loading. --- diff --git a/src/rdb.c b/src/rdb.c index 519b645d..1e23fa70 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -859,14 +859,17 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { /* Add pair to ziplist */ o->ptr = ziplistPush(o->ptr, field->ptr, sdslen(field->ptr), ZIPLIST_TAIL); o->ptr = ziplistPush(o->ptr, value->ptr, sdslen(value->ptr), ZIPLIST_TAIL); - /* Convert to hash table if size threshold is exceeded */ if (sdslen(field->ptr) > server.hash_max_ziplist_value || sdslen(value->ptr) > server.hash_max_ziplist_value) { + decrRefCount(field); + decrRefCount(value); hashTypeConvert(o, REDIS_ENCODING_HT); break; } + decrRefCount(field); + decrRefCount(value); } /* Load remaining fields and values into the hash table */