]> git.saurik.com Git - redis.git/blobdiff - src/networking.c
Don't reset the client when processCommand returns REDIS_ERR
[redis.git] / src / networking.c
index cc4c9341d6b2ad6d4bb2323e1a8c6a59ffe7ec7e..e2e25207b5d025b49063ad58450478d38121d1b1 100644 (file)
@@ -820,9 +820,13 @@ void processInputBuffer(redisClient *c) {
         }
 
         /* Multibulk processing could see a <= 0 length. */
-        if (c->argc > 0)
-            processCommand(c);
-        resetClient(c);
+        if (c->argc == 0) {
+            resetClient(c);
+        } else {
+            /* Only reset the client when the command was executed. */
+            if (processCommand(c) == REDIS_OK)
+                resetClient(c);
+        }
     }
 }