fixed overflow when empty page

This commit is contained in:
Clément DOUIN
2021-03-16 22:33:06 +01:00
parent c9b26031e2
commit 0dd73e693e
2 changed files with 11 additions and 3 deletions
+9 -3
View File
@@ -101,10 +101,16 @@ impl<'a> ImapConnector<'a> {
.sess
.select(mbox)
.chain_err(|| format!("Cannot select mailbox `{}`", mbox))?
.exists;
.exists as i64;
let begin = last_seq - page * page_size;
let end = begin - (begin - 1).min(page_size - 1);
if last_seq == 0 {
return Err(format!("Cannot select empty mailbox `{}`", mbox).into());
}
// TODO: add tests, improve error management when empty page
let cursor = (page * page_size) as i64;
let begin = 1.max(last_seq - cursor);
let end = begin - begin.min(*page_size as i64) + 1;
let range = format!("{}:{}", begin, end);
let msgs = self