diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2016-01-21 15:37:08 +0000 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2016-01-22 10:53:09 +0000 |
commit | 1bc460a64a0de0766d21f4f8660c6597bc410cbc (patch) | |
tree | 2ac176817e7a3b84c5cadf90b7132d12345e07fd /src | |
parent | 4dce3152ce5e257dde0575dc2fab4121d127dfb5 (diff) |
Cutthrough: Fix bug with dot-only line
Diffstat (limited to 'src')
-rw-r--r-- | src/src/receive.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/src/receive.c b/src/src/receive.c index f2a94e0f8..a479e12cd 100644 --- a/src/src/receive.c +++ b/src/src/receive.c @@ -835,7 +835,15 @@ while ((ch = (receive_getc)()) != EOF) ch_state = 4; continue; } - ch_state = 1; /* The dot itself is removed */ + /* The dot was removed at state 3. For a doubled dot, here, reinstate + it to cutthrough. The current ch, dot or not, is passed both to cutthrough + and to file below. */ + if (ch == '.') + { + uschar c= ch; + (void) cutthrough_puts(&c, 1); + } + ch_state = 1; break; case 4: /* After [CR] LF . CR */ |