diff --git a/milterutil/transformer.go b/milterutil/transformer.go index f888bce..001ce7c 100644 --- a/milterutil/transformer.go +++ b/milterutil/transformer.go @@ -22,7 +22,6 @@ func (t *CrLfToLfTransformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc if c == lf { if t.prevCR { nSrc++ - dst[nDst-1] = lf t.prevCR = false continue } diff --git a/milterutil/transformer_test.go b/milterutil/transformer_test.go index d598583..2dcb74e 100644 --- a/milterutil/transformer_test.go +++ b/milterutil/transformer_test.go @@ -93,6 +93,8 @@ func TestCrLfToLfTransformer(t *testing.T) { {[]string{"\r", "\n"}, "\n"}, {[]string{"\r\r", "\n"}, "\n\n"}, {[]string{stuffing + "123456\r", "\n"}, stuffing + "123456\n"}, + // regression https://github.com/d--j/go-milter/pull/20 + {[]string{"aaaaaaaaaaaaaaaaaaaaaaaa\r\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\nbbbbbbb"}, "aaaaaaaaaaaaaaaaaaaaaaaa\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nbbbbbbb"}, }) }