Defrag: do not crash on empty quicklist.

This commit is contained in:
antirez 2017-01-11 15:36:48 +01:00
parent e91f0ea1b3
commit 4186879675

View File

@ -308,7 +308,7 @@ int defargKey(redisDb *db, dictEntry *de) {
quicklistNode *node = ql->head, *newnode;
if ((newql = activeDefragAlloc(ql)))
defragged++, ob->ptr = ql = newql;
do {
while (node) {
if ((newnode = activeDefragAlloc(node))) {
if (newnode->prev)
newnode->prev->next = newnode;
@ -323,7 +323,8 @@ int defargKey(redisDb *db, dictEntry *de) {
}
if ((newzl = activeDefragAlloc(node->zl)))
defragged++, node->zl = newzl;
} while ((node = node->next));
node = node->next;
}
} else if (ob->encoding == OBJ_ENCODING_ZIPLIST) {
if ((newzl = activeDefragAlloc(ob->ptr)))
defragged++, ob->ptr = newzl;