dovecot-2.0: istream-header-filter: Assert-crash if headers aren...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Oct 15 21:50:56 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/0d689c112c6e
changeset: 12286:0d689c112c6e
user: Timo Sirainen <tss at iki.fi>
date: Fri Oct 15 19:50:51 2010 +0100
description:
istream-header-filter: Assert-crash if headers aren't given sorted.
diffstat:
src/lib-mail/istream-header-filter.c | 5 ++++-
src/lib-mail/test-istream-header-filter.c | 8 ++++----
2 files changed, 8 insertions(+), 5 deletions(-)
diffs (45 lines):
diff -r 9dd776345b22 -r 0d689c112c6e src/lib-mail/istream-header-filter.c
--- a/src/lib-mail/istream-header-filter.c Fri Oct 15 19:40:06 2010 +0100
+++ b/src/lib-mail/istream-header-filter.c Fri Oct 15 19:50:51 2010 +0100
@@ -509,8 +509,11 @@
mstream->headers = headers_count == 0 ? NULL :
p_new(mstream->pool, const char *, headers_count);
- for (i = 0; i < headers_count; i++)
+ for (i = 0; i < headers_count; i++) {
+ i_assert(i == 0 ||
+ strcmp(mstream->headers[i-1], headers[i]) < 0);
mstream->headers[i] = p_strdup(mstream->pool, headers[i]);
+ }
mstream->headers_count = headers_count;
mstream->hdr_buf = buffer_create_dynamic(mstream->pool, 1024);
diff -r 9dd776345b22 -r 0d689c112c6e src/lib-mail/test-istream-header-filter.c
--- a/src/lib-mail/test-istream-header-filter.c Fri Oct 15 19:40:06 2010 +0100
+++ b/src/lib-mail/test-istream-header-filter.c Fri Oct 15 19:50:51 2010 +0100
@@ -18,8 +18,8 @@
static void test_istream_filter(void)
{
- static const char *exclude_headers[] = { "To", NULL };
- const char *input = "From: foo\nFrom: abc\nTo: bar\n\nhello world\n";
+ static const char *exclude_headers[] = { "Subject", "To", NULL };
+ const char *input = "From: foo\nFrom: abc\nTo: bar\nSubject: plop\n\nhello world\n";
const char *output = "From: abc\n\nhello world\n";
struct istream *istream, *filter, *filter2;
unsigned int i, input_len = strlen(input);
@@ -32,12 +32,12 @@
filter = i_stream_create_header_filter(istream,
HEADER_FILTER_EXCLUDE |
HEADER_FILTER_NO_CR,
- exclude_headers, 1,
+ exclude_headers, 2,
filter_callback, NULL);
filter2 = i_stream_create_header_filter(filter,
HEADER_FILTER_EXCLUDE |
HEADER_FILTER_NO_CR,
- exclude_headers, 1,
+ exclude_headers, 2,
null_header_filter_callback, NULL);
i_stream_unref(&filter);
filter = filter2;
More information about the dovecot-cvs
mailing list