diff -ru dovecot-0.99.13/src/lib-index/mbox/mbox-index.c dovecot-0.99.14/src/lib-index/mbox/mbox-index.c --- dovecot-0.99.13/src/lib-index/mbox/mbox-index.c 2005-01-19 01:55:44.000000000 +0200 +++ dovecot-0.99.14/src/lib-index/mbox/mbox-index.c 2005-01-19 01:55:49.000000000 +0200 @@ -359,6 +359,11 @@ break; ctx->uid = ctx->uid * 10 + (hdr->value[i]-'0'); } + if (ctx->uid >= ctx->index->header->next_uid) { + /* unexpectedly large UID field. + don't allow it. */ + ctx->uid = 0; + } } else if (strcasecmp(hdr->name, "X-Status") == 0) { /* update message flags */ ctx->flags |= mbox_get_status_flags(hdr->value,