From: Timo Sirainen Date: Sun, 30 May 2004 05:09:47 +0000 (+0300) Subject: assert fix X-Git-Tag: 1.1.alpha1~4014 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=715f8faa614bc7d5ff3cfc13781b79340384a59c;p=thirdparty%2Fdovecot%2Fcore.git assert fix --HG-- branch : HEAD --- diff --git a/src/pop3/client.c b/src/pop3/client.c index f96785de9d..91244e1120 100644 --- a/src/pop3/client.c +++ b/src/pop3/client.c @@ -47,25 +47,27 @@ static int init_mailbox(struct client *client) struct mailbox_status status; int i, failed; - if (mailbox_get_status(client->mailbox, - STATUS_MESSAGES | STATUS_UIDVALIDITY, - &status) < 0) { - client_send_storage_error(client); - return FALSE; - } - - client->messages_count = status.messages; - client->deleted_size = 0; - client->uidvalidity = status.uidvalidity; - - if (client->messages_count == 0) - return TRUE; - memset(&search_arg, 0, sizeof(search_arg)); search_arg.type = SEARCH_ALL; - client->message_sizes = i_new(uoff_t, client->messages_count); for (i = 0; i < 2; i++) { + if (mailbox_get_status(client->mailbox, + STATUS_MESSAGES | STATUS_UIDVALIDITY, + &status) < 0) { + client_send_storage_error(client); + return FALSE; + } + + client->messages_count = status.messages; + client->deleted_size = 0; + client->uidvalidity = status.uidvalidity; + + if (client->messages_count == 0) + return TRUE; + + i_free(client->message_sizes); + client->message_sizes = i_new(uoff_t, client->messages_count); + t = mailbox_transaction_begin(client->mailbox, FALSE); ctx = mailbox_search_init(t, NULL, &search_arg, NULL, MAIL_FETCH_SIZE, NULL);