Bugfix for previous commit: IMAP and POP3 expunge operations
authorArt Cancro <ajc@citadel.org>
Fri, 28 Jul 2006 04:14:15 +0000 (04:14 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 28 Jul 2006 04:14:15 +0000 (04:14 +0000)
were calling CtdlDeleteMessages() with num_msgs=0 if there was nothing to delete; this
was bad because it causes all msgs in the room to be deleted.

citadel/serv_imap.c
citadel/serv_pop3.c

index fd64162af26a53ea7370303c1ae1f09a8ca79263..50e83988477d8c2719c9a8d2d0f14c5ddbe838d0 100644 (file)
@@ -726,7 +726,9 @@ int imap_do_expunge(void)
                                delmsgs[num_delmsgs++] = IMAP->msgids[i];
                        }
                }
-               CtdlDeleteMessages(CC->room.QRname, delmsgs, num_delmsgs, "", 1);
+               if (num_delmsgs > 0) {
+                       CtdlDeleteMessages(CC->room.QRname, delmsgs, num_delmsgs, "", 1);
+               }
                num_expunged += num_delmsgs;
                free(delmsgs);
        }
index a015e429db116e5b875ea1948d8c18b5699fcf88..a6f004e00f8d535bb04c1f2fe6ecb59ee7cf5c0a 100644 (file)
@@ -477,7 +477,9 @@ void pop3_update(void) {
                                deletemsgs[num_deletemsgs++] = POP3->msgs[i].msgnum;
                        }
                }
-               CtdlDeleteMessages(MAILROOM, deletemsgs, num_deletemsgs, "", 1);
+               if (num_deletemsgs > 0) {
+                       CtdlDeleteMessages(MAILROOM, deletemsgs, num_deletemsgs, "", 1);
+               }
                free(deletemsgs);
        }