From a5f65aa45eb6dc455436e8598cdfe352f99fa03a Mon Sep 17 00:00:00 2001 From: Tony Finch Date: Thu, 15 Sep 2005 16:02:07 +0000 Subject: [PATCH] A further widen_domains fix for a subtle but common case. --- doc/doc-txt/ChangeLog | 5 ++++- src/src/routers/dnslookup.c | 15 +++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 8bf589aa5..a11fba9d6 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.232 2005/09/15 09:15:26 fanf2 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.233 2005/09/15 16:02:07 fanf2 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -196,6 +196,9 @@ TF/03 Minor fix to the ratelimit code to improve its behaviour in case the TF/04 Fix the ratelimit support in exim_fixdb. Patch provided by Brian Candler . +TF/05 The fix for PH/43 was not completely correct; widen_domains is always + OK for addresses that are the result of redirections. + Exim version 4.52 ----------------- diff --git a/src/src/routers/dnslookup.c b/src/src/routers/dnslookup.c index 50c767839..aced23747 100644 --- a/src/src/routers/dnslookup.c +++ b/src/src/routers/dnslookup.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/routers/dnslookup.c,v 1.5 2005/09/12 15:09:55 ph10 Exp $ */ +/* $Cambridge: exim/src/src/routers/dnslookup.c,v 1.6 2005/09/15 16:02:07 fanf2 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -185,11 +185,14 @@ worked out immediately before they are used. Sender addresses are routed for verification purposes, but never at transport time, so any header changes that you might expect as a result of sender domain widening do not occur. Therefore we do not perform widening when verifying sender addresses; however, widening -sender addresses is OK if we do not have to rewrite the headers. The -suppression of widening for sender addresses is silent because it is the normal -desirable behaviour. */ - -if (ob->widen_domains != NULL && (verify != v_sender || !ob->rewrite_headers)) +sender addresses is OK if we do not have to rewrite the headers. A corollary +of this is that if the current address is not the original address, then it +does not appear in the message header so it is also OK to widen. The +suppression of widening for sender addresses is silent because it is the +normal desirable behaviour. */ + +if (ob->widen_domains != NULL && + (verify != v_sender || !ob->rewrite_headers || addr->parent != NULL)) { listptr = ob->widen_domains; widen = string_nextinlist(&listptr, &widen_sep, widen_buffer, -- 2.25.1