From: Pieter Noordhuis <pcnoordhuis@gmail.com>
Date: Sun, 30 May 2010 01:14:38 +0000 (+0200)
Subject: fix LREM to remove *all* occurances when a zero argument is given
X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/3fbf9001ce88f2b3d154b099bcf2fd3783f24940?ds=inline;hp=-c

fix LREM to remove *all* occurances when a zero argument is given
---

3fbf9001ce88f2b3d154b099bcf2fd3783f24940
diff --git a/redis.c b/redis.c
index 1ae32797..2a488283 100644
--- a/redis.c
+++ b/redis.c
@@ -5196,12 +5196,12 @@ static void lremCommand(redisClient *c) {
         li = lInitIterator(subject,0);
     }
 
-    while (toremove && lIsEntry(li)) {
+    while (lIsEntry(li)) {
         if (lEqualTo(li,obj)) {
             lDelete(li,direction);
             server.dirty++;
-            toremove--;
             removed++;
+            if (toremove && removed == toremove) break;
         } else {
             lMove(li,direction);
         }