Mercurial > dovecot > original-hg > dovecot-1.2
changeset 2509:146591955618 HEAD
Fixed crash if mail data was fetched in specific order. Plus some minor
fixes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 28 Aug 2004 16:10:22 +0300 |
parents | 467af814d5e2 |
children | 0f660149c7ef |
files | src/lib-storage/index/index-mail-headers.c src/lib-storage/index/index-mail.c |
diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail-headers.c Sat Aug 28 15:57:05 2004 +0300 +++ b/src/lib-storage/index/index-mail-headers.c Sat Aug 28 16:10:22 2004 +0300 @@ -321,7 +321,7 @@ struct index_mail_data *data = &mail->data; if (mail->mail.get_stream(&mail->mail, NULL, NULL) == NULL) - return FALSE; + return -1; index_mail_parse_header_init(mail, headers); @@ -340,7 +340,7 @@ data->hdr_size_set = TRUE; data->parse_header = FALSE; - return TRUE; + return 0; } static void @@ -525,6 +525,12 @@ (struct index_header_lookup_ctx *)_headers; string_t *dest; + if (mail->data.save_bodystructure_header) { + /* we have to parse the header. */ + if (index_mail_parse_headers(mail, _headers) < 0) + return NULL; + } + dest = str_new(mail->pool, 256); if (mail_cache_lookup_headers(mail->trans->cache_view, dest, mail->data.seq, headers->idx, @@ -536,7 +542,7 @@ p_free(mail->pool, dest); if (mail->mail.get_stream(&mail->mail, NULL, NULL) == NULL) - return FALSE; + return NULL; if (mail->data.filter_stream != NULL) i_stream_unref(mail->data.filter_stream);
--- a/src/lib-storage/index/index-mail.c Sat Aug 28 15:57:05 2004 +0300 +++ b/src/lib-storage/index/index-mail.c Sat Aug 28 16:10:22 2004 +0300 @@ -182,7 +182,7 @@ return data->parts; if (data->parser_ctx == NULL) { - if (!index_mail_parse_headers(mail, NULL)) + if (index_mail_parse_headers(mail, NULL) < 0) return NULL; } index_mail_parse_body(mail, TRUE); @@ -410,7 +410,7 @@ if (hdr_size != NULL) { if (!data->hdr_size_set) { - if (!index_mail_parse_headers(mail, NULL)) + if (index_mail_parse_headers(mail, NULL) < 0) return NULL; } @@ -449,7 +449,7 @@ /* we haven't parsed the header yet */ data->save_bodystructure_header = TRUE; data->save_bodystructure_body = TRUE; - if (!index_mail_parse_headers(mail, NULL)) + if (index_mail_parse_headers(mail, NULL) < 0) return; }