summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2016-01-21 15:37:08 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2016-01-22 10:53:09 +0000
commit1bc460a64a0de0766d21f4f8660c6597bc410cbc (patch)
tree2ac176817e7a3b84c5cadf90b7132d12345e07fd /src
parent4dce3152ce5e257dde0575dc2fab4121d127dfb5 (diff)
Cutthrough: Fix bug with dot-only line
Diffstat (limited to 'src')
-rw-r--r--src/src/receive.c10
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 */