]> granicus.if.org Git - curl/commitdiff
imap: Simplified memcmp() in tagged response parsing
authorSteve Holme <steve_holme@hotmail.com>
Sun, 24 Feb 2013 12:45:04 +0000 (12:45 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 24 Feb 2013 12:45:04 +0000 (12:45 +0000)
lib/imap.c

index b2c97136dffaaa22c982a30a9c068876dc911ed8..7d978b634f5f1ae56d16dfe2cb90ecd6353a1724 100644 (file)
@@ -336,13 +336,14 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,
 
   /* Do we have a tagged command response? */
   if(len >= id_len + 1 && !memcmp(id, line, id_len) && line[id_len] == ' ') {
-    len = len - id_len - 1;
+    line += id_len + 1;
+    len -= id_len + 1;
 
-    if(len >= 2 && !memcmp(line + id_len + 1, "OK", 2))
+    if(len >= 2 && !memcmp(line, "OK", 2))
       *resp = 'O';
-    else if(len >= 2 && !memcmp(line + id_len + 1, "NO", 2))
+    else if(len >= 2 && !memcmp(line, "NO", 2))
       *resp = 'N';
-    else if(len >= 3 && !memcmp(line + id_len + 1, "BAD", 3))
+    else if(len >= 3 && !memcmp(line, "BAD", 3))
       *resp = 'B';
     else {
       failf(conn->data, "Bad tagged response");