]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fix updating mailbox GUID in mailbox list index when it's empty
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 13 Sep 2017 13:13:34 +0000 (16:13 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 13 Sep 2017 16:22:46 +0000 (19:22 +0300)
Normally the GUID shouldn't be empty at this point. Updating mailbox GUID is
also very rare. So this was unlikely to cause any problems in practise.

src/lib-storage/list/mailbox-list-index-status.c

index ab03535a5cf16826b8001f32b75cfb908b9ea7f0..f5045a8755b516ae420279e1e1b959cf546bb0a8 100644 (file)
@@ -717,16 +717,17 @@ void mailbox_list_index_update_mailbox_index(struct mailbox *box,
        if ((ret = index_list_open_view(box, FALSE, &list_view, &changes.seq)) <= 0)
                return;
 
+       guid_128_empty(mailbox_guid);
        (void)mailbox_list_index_status(box->list, list_view, changes.seq,
                                        CACHED_STATUS_ITEMS, &status,
                                        mailbox_guid, NULL);
+
        if (update->uid_validity != 0) {
                changes.rec_changed = TRUE;
                changes.status.uidvalidity = update->uid_validity;
        }
        if (!guid_128_equals(update->mailbox_guid, mailbox_guid) &&
-           !guid_128_is_empty(update->mailbox_guid) &&
-           !guid_128_is_empty(mailbox_guid)) {
+           !guid_128_is_empty(update->mailbox_guid)) {
                changes.rec_changed = TRUE;
                memcpy(changes.guid, update->mailbox_guid, sizeof(changes.guid));
                guid_changed = TRUE;