From d195b66d38fd2ef7407705eba04bb8b6953cd41d Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 12 Feb 2017 16:46:30 -0500 Subject: [PATCH] DKIM: fix crash with a verification when dkim disabled, under CHUNKING (cherry picked from commit 79de4f370f306869887e1714ff4ecef5bfc93fa5) (changelog added) Signed-off-by: Phil Pennock --- doc/doc-txt/ChangeLog | 2 ++ src/src/smtp_in.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 3c90d6480..0af5504e3 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -97,6 +97,8 @@ PP/08 Reduce a number of compilation warnings under clang; building with CC=clang CFLAGS+=-Wno-dangling-else -Wno-logical-op-parentheses should be warning-free. +JH/17 Fix inbound CHUNKING when DKIM disabled at runtime. + Exim version 4.88 ----------------- diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index bd83de045..5461104b2 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -486,12 +486,17 @@ uschar * log_msg; for(;;) { +#ifndef DISABLE_DKIM + BOOL dkim_save; +#endif + if (chunking_data_left > 0) return lwr_receive_getc(chunking_data_left--); receive_getc = lwr_receive_getc; receive_ungetc = lwr_receive_ungetc; #ifndef DISABLE_DKIM + dkim_save = dkim_collect_input; dkim_collect_input = FALSE; #endif @@ -592,7 +597,7 @@ next_cmd: receive_getc = bdat_getc; receive_ungetc = bdat_ungetc; #ifndef DISABLE_DKIM - dkim_collect_input = TRUE; + dkim_collect_input = dkim_save; #endif break; /* to top of main loop */ } -- 2.30.2