From b94fe09cae4df297d8bb690f428eabe93decda85 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Wed, 20 Jan 2010 08:42:47 +0000 Subject: [PATCH] Fixed bug #2933667: CRLF filter broken. --- src/utility/filteredStream.cpp | 4 ++-- tests/utility/filteredStreamTest.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utility/filteredStream.cpp b/src/utility/filteredStream.cpp index 619f9da8..c1b01ef5 100644 --- a/src/utility/filteredStream.cpp +++ b/src/utility/filteredStream.cpp @@ -231,8 +231,8 @@ void CRLFToLFFilteredOutputStream::write if (previousChar == '\r') { - if (pos != data) - m_stream.write(start, pos - 1 - data); // do not write \r + if (pos != start) + m_stream.write(start, pos - 1 - start); // do not write \r m_stream.write("\n", 1); diff --git a/tests/utility/filteredStreamTest.cpp b/tests/utility/filteredStreamTest.cpp index ad26e6c4..a2e6f3e6 100644 --- a/tests/utility/filteredStreamTest.cpp +++ b/tests/utility/filteredStreamTest.cpp @@ -175,6 +175,7 @@ VMIME_TEST_SUITE_BEGIN testFilteredOutputStreamHelper("4", "foo\nbar", "foo", "\r\nbar"); testFilteredOutputStreamHelper("5", "foo\nbar", "foo", "\r", "\nbar"); testFilteredOutputStreamHelper("6", "foo\nbar", "foo", "\r", "\n", "bar"); + testFilteredOutputStreamHelper("7", "foo\nba\nr", "foo\r", "\nba\r\nr"); } // stopSequenceFilteredInputStream