Mercurial > dovecot > core-2.2
diff src/lib-imap-storage/imap-msgpart.c @ 20700:d974673e577c
lib-imap-storage: Check that UID is assigned before caching
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Tue, 06 Sep 2016 09:23:54 +0300 |
parents | 3a71ed48cdf7 |
children | 59437f8764c6 |
line wrap: on
line diff
--- a/src/lib-imap-storage/imap-msgpart.c Mon Sep 05 15:56:05 2016 +0300 +++ b/src/lib-imap-storage/imap-msgpart.c Tue Sep 06 09:23:54 2016 +0300 @@ -423,7 +423,7 @@ if (virtual_skip == 0) { /* no need to seek */ - } else if (cache->uid == mail->uid && + } else if (mail->uid > 0 && cache->uid == mail->uid && cache->physical_start == physical_start && cache->virtual_pos < virtual_skip) { /* use cache */ @@ -437,7 +437,8 @@ return errinput; } - if ((msgpart->partial_offset != 0 || + if (mail->uid > 0 && + (msgpart->partial_offset != 0 || msgpart->partial_size != (uoff_t)-1) && !input->eof) { /* update cache */ cache->uid = mail->uid;