]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mbox: Return header MD5 allocated from mail's data pool, not data stack.
authorTimo Sirainen <tss@iki.fi>
Thu, 29 Oct 2009 22:47:50 +0000 (18:47 -0400)
committerTimo Sirainen <tss@iki.fi>
Thu, 29 Oct 2009 22:47:50 +0000 (18:47 -0400)
--HG--
branch : HEAD

src/lib-storage/index/mbox/mbox-mail.c

index 13ec81368adbc9db19ead03ec067316bbaefa116..2b0a05765f5dd8a8899a34d74da3208da06e06b0 100644 (file)
@@ -153,10 +153,15 @@ mbox_mail_get_md5_header(struct index_mail *mail, const char **value_r)
        struct mbox_mailbox *mbox = (struct mbox_mailbox *)mail->ibox;
        const void *ext_data;
 
+       if (mail->data.guid != NULL)
+               return mail->data.guid;
+
        mail_index_lookup_ext(mail->trans->trans_view, mail->mail.mail.seq,
                              mbox->md5hdr_ext_idx, &ext_data, NULL);
        if (ext_data != NULL && memcmp(ext_data, empty_md5, 16) != 0) {
-               *value_r = binary_to_hex(ext_data, 16);
+               mail->data.guid = p_strdup(mail->data_pool,
+                                          binary_to_hex(ext_data, 16));
+               *value_r = mail->data.guid;
                return TRUE;
        } else {
                return FALSE;