From 41868796759f5cf16c83e7a09c3e2f7abec08670 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 11 Jan 2017 15:36:48 +0100 Subject: [PATCH] Defrag: do not crash on empty quicklist. --- src/defrag.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/defrag.c b/src/defrag.c index ddfd6e2dd..dee879349 100644 --- a/src/defrag.c +++ b/src/defrag.c @@ -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;