From a863cf8e7e63b40f4cd52909b7b625912d41309c Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 25 Jan 2018 02:14:51 +0100 Subject: [PATCH] upas/fs: deal with imap returning more uid's than allocated from previus "messages" command --- sys/src/cmd/upas/fs/imap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/src/cmd/upas/fs/imap.c b/sys/src/cmd/upas/fs/imap.c index 45885d834..f0ac28e23 100644 --- a/sys/src/cmd/upas/fs/imap.c +++ b/sys/src/cmd/upas/fs/imap.c @@ -916,7 +916,11 @@ imap4read(Imap *imap, Mailbox *mb) f = imap->f; n = imap->nuid; - if(n < imap->nmsg) idprint(imap, "partial sync %d < %d\n", n, imap->nmsg); + if(n > imap->muid){ + idprint(imap, "partial sync %d > %d\n", n, imap->muid); + n = imap->nuid = imap->muid; + } else if(n < imap->nmsg) + idprint(imap, "partial sync %d < %d\n", n, imap->nmsg); qsort(f, n, sizeof f[0], (int(*)(void*, void*))fetchicmp); ll = &mb->root->part; for(i = 0; (m = *ll) != nil || i < n; ){