From fc0145f18928ac601a7fb816b8aec0b3491d65f0 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 28 Jul 2006 04:14:15 +0000 Subject: [PATCH] Bugfix for previous commit: IMAP and POP3 expunge operations 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 | 4 +++- citadel/serv_pop3.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/citadel/serv_imap.c b/citadel/serv_imap.c index fd64162af..50e839884 100644 --- a/citadel/serv_imap.c +++ b/citadel/serv_imap.c @@ -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); } diff --git a/citadel/serv_pop3.c b/citadel/serv_pop3.c index a015e429d..a6f004e00 100644 --- a/citadel/serv_pop3.c +++ b/citadel/serv_pop3.c @@ -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); } -- 2.39.2