Mercurial > dovecot > core-2.2
changeset 18153:7250ccf9ab4c
lib-mail: message-decoder now always sets output->size=0 when headers are returned.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 15 Jan 2015 01:11:34 +0200 |
parents | 38e807433e2f |
children | 55555824f636 |
files | src/lib-mail/message-decoder.c src/lib-mail/test-message-decoder.c |
diffstat | 2 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-decoder.c Thu Jan 15 01:10:11 2015 +0200 +++ b/src/lib-mail/message-decoder.c Thu Jan 15 01:11:34 2015 +0200 @@ -363,9 +363,10 @@ output->part = input->part; ctx->prev_part = input->part; - if (input->hdr != NULL) + if (input->hdr != NULL) { + output->size = 0; return message_decode_header(ctx, input->hdr, output); - else if (input->size != 0) + } else if (input->size != 0) return message_decode_body(ctx, input, output); else { output->hdr = NULL;
--- a/src/lib-mail/test-message-decoder.c Thu Jan 15 01:10:11 2015 +0200 +++ b/src/lib-mail/test-message-decoder.c Thu Jan 15 01:11:34 2015 +0200 @@ -27,7 +27,7 @@ memset(&part, 0, sizeof(part)); memset(&input, 0, sizeof(input)); - memset(&output, 0, sizeof(output)); + memset(&output, 0xff, sizeof(output)); input.part = ∂ ctx = message_decoder_init(NULL, 0); @@ -39,6 +39,7 @@ hdr.full_value_len = strlen((const char *)hdr.full_value); input.hdr = &hdr; test_assert(message_decoder_decode_next_block(ctx, &input, &output)); + test_assert(output.size == 0); input.hdr = NULL; test_assert(message_decoder_decode_next_block(ctx, &input, &output));