diff options
author | antirez <antirez@gmail.com> | 2017-01-11 15:36:48 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2017-01-11 15:38:09 +0100 |
commit | 41868796759f5cf16c83e7a09c3e2f7abec08670 (patch) | |
tree | f2b01bf9aa1335c942f03a18ab48e5dd0661eb19 | |
parent | e91f0ea1b3b1fa6237ec6b359a2665ab0f472989 (diff) | |
download | redis-41868796759f5cf16c83e7a09c3e2f7abec08670.tar.gz |
Defrag: do not crash on empty quicklist.
-rw-r--r-- | src/defrag.c | 5 |
1 files 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; |