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 = &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));