ph10 2005/01/04 13:31:41 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src ACKNOWLEDGMENTS
exim-src/src match.c
exim-test-orig/AutoTest/confs 566
exim-test-orig/AutoTest/log 566
exim-test-orig/AutoTest/scripts 566
exim-test-orig/AutoTest/stdout 566
Added files:
exim-test-orig/AutoTest/aux 566.data2 566.data3
exim-test-orig/AutoTest/mail 566.ph10
Log:
Data saved for $host_data after a lookup involving a named host list was
corrupted if there was more than one message in an SMTP session.
Revision Changes Path
1.63 +6 -0 exim/exim-doc/doc-txt/ChangeLog
1.11 +2 -1 exim/exim-src/ACKNOWLEDGMENTS
1.4 +3 -1 exim/exim-src/src/match.c
1.1 +1 -0 exim/exim-test-orig/AutoTest/aux/566.data2 (new)
1.1 +1 -0 exim/exim-test-orig/AutoTest/aux/566.data3 (new)
1.2 +37 -3 exim/exim-test-orig/AutoTest/confs/566
1.2 +14 -2 exim/exim-test-orig/AutoTest/log/566
1.1 +16 -0 exim/exim-test-orig/AutoTest/mail/566.ph10 (new)
1.2 +12 -2 exim/exim-test-orig/AutoTest/scripts/566
1.2 +10 -2 exim/exim-test-orig/AutoTest/stdout/566
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- ChangeLog 4 Jan 2005 11:01:33 -0000 1.62
+++ ChangeLog 4 Jan 2005 13:31:41 -0000 1.63
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.62 2005/01/04 11:01:33 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.63 2005/01/04 13:31:41 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -283,6 +283,12 @@
64. A call to exiwhat cut short delays set up by "delay" modifiers in ACLs.
This has been fixed.
+
+65. Caching of lookup data for "hosts =" ACL conditions, when a named host list
+ was in use, was not putting the data itself into the right store pool;
+ consequently, it could be overwritten for a subsequent message in the same
+ SMTP connection. (Fix 4.40/11 dealt with the non-cache case, but overlooked
+ the caching.)
Exim version 4.43
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ACKNOWLEDGMENTS 21 Dec 2004 12:00:59 -0000 1.10
+++ ACKNOWLEDGMENTS 4 Jan 2005 13:31:41 -0000 1.11
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.10 2004/12/21 12:00:59 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.11 2005/01/04 13:31:41 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -20,7 +20,7 @@
Philip Hazel
Lists created: 20 November 2002
-Last updated: 21 December 2004
+Last updated: 04 January 2005
THE OLD LIST
@@ -189,6 +189,7 @@
Peter Savitch Diagnosis of FPE bug when statvfs() fails on spool
Harald Schueler Patch for dn_expand() failure on truncated data
Heiko Schlichting Diagnosis of intermittent daemon crash bug
+Stephan Schulz Patch for $host_data caching error
Tony Sheen Log files with datestamped names and auto rollover
Martin Sluka Patch for exigrep to include non-message lines
Tamas Tevesz Patch for crypt16() support
Index: match.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/match.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- match.c 4 Jan 2005 10:00:42 -0000 1.3
+++ match.c 4 Jan 2005 13:31:41 -0000 1.4
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/match.c,v 1.3 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/match.c,v 1.4 2005/01/04 13:31:41 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -630,9 +630,11 @@
store_pool = POOL_PERM;
p = store_get(sizeof(namedlist_cacheblock));
p->key = string_copy(get_check_key(arg, type));
+
+
+ p->data = (*valueptr == NULL)? NULL : string_copy(*valueptr);
store_pool = old_pool;
- p->data = *valueptr;
p->next = nb->cache_data;
nb->cache_data = p;
if (*valueptr != NULL)
Index: 566.data2
====================================================================
1.2.3.4: LOOKEDUPDATA2
Index: 566.data3
====================================================================
xyz: data for xyz
Index: 566
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/566,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 566 8 Oct 2004 14:49:16 -0000 1.1
+++ 566 4 Jan 2005 13:31:41 -0000 1.2
@@ -10,8 +10,12 @@
# ----- Main settings -----
+hostlist ahosts = net-lsearch;DIR/aux/566.data
+hostlist bhosts = net-lsearch;DIR/aux/566.data2
+
acl_smtp_helo = acl_check_helo
acl_smtp_mail = acl_check_mail
+acl_smtp_rcpt = acl_check_rcpt
trusted_users = CALLER
@@ -20,11 +24,41 @@
begin acl
acl_check_helo:
- warn hosts = net-lsearch;DIR/aux/566.data
- logwrite = at HELO: >$host_data<
+ warn hosts = +ahosts
+ logwrite = at HELO: >$host_data<
accept
acl_check_mail:
- warn logwrite = at MAIL: >$host_data<
+ warn logwrite = at MAIL: >$host_data<
+ warn senders = third@non-null
+ logwrite = other lookup at MAIL: ${lookup{xyz}lsearch{DIR/aux/566.data3}}
+ warn !senders = :
+ hosts = +bhosts
+ logwrite = at MAIL (non-null): >$host_data<
+ accept
+
+acl_check_rcpt:
+ warn logwrite = at RCPT: >$host_data<
+ warn logwrite = Expansions: $qualify_domain, $local_part@$domain
+ accept
+
+
+# ----- Routers -----
+
+begin routers
+
+r1:
+ driver = accept
+ transport = t1
+
+
+# ----- Transports -----
+
+begin transports
+
+t1:
+ driver = appendfile
+ file = DIR/test-mail/$local_part
+ user = CALLER
# End of Exim 4 configuration
Index: 566
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/log/566,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 566 8 Oct 2004 14:49:31 -0000 1.1
+++ 566 4 Jan 2005 13:31:41 -0000 1.2
@@ -1,5 +1,17 @@
1999-03-02 09:44:33 at HELO: >LOOKEDUPDATA<
1999-03-02 09:44:33 at MAIL: >LOOKEDUPDATA<
-1999-03-02 09:44:33 H=(x.y.z) [1.2.3.4] U=ph10 rejected MAIL <>
+1999-03-02 09:44:33 at RCPT: >LOOKEDUPDATA<
+1999-03-02 09:44:33 Expansions: myhost.test.ex, ph10@???
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= <> H=(x.y.z) [1.2.3.4] U=ph10 P=esmtp S=188
+1999-03-02 09:44:33 10HmaX-0005vi-00 => ph10 <ph10@???> R=r1 T=t1
+1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 at MAIL: >LOOKEDUPDATA<
-1999-03-02 09:44:33 H=(x.y.z) [1.2.3.4] U=ph10 rejected MAIL <>
+1999-03-02 09:44:33 at MAIL: >LOOKEDUPDATA<
+1999-03-02 09:44:33 at MAIL (non-null): >LOOKEDUPDATA2<
+1999-03-02 09:44:33 at RCPT: >LOOKEDUPDATA2<
+1999-03-02 09:44:33 Expansions: myhost.test.ex, ph10@???
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= nonnull@??? H=(x.y.z) [1.2.3.4] U=ph10 P=esmtp S=188
+1999-03-02 09:44:33 10HmaY-0005vi-00 => ph10 <ph10@???> R=r1 T=t1
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 at MAIL: >LOOKEDUPDATA2<
+1999-03-02 09:44:33 at MAIL (non-null): >LOOKEDUPDATA2<
Index: 566.ph10
====================================================================
From MAILER-DAEMON Tue Mar 02 09:44:33 1999
Received: from [1.2.3.4] (helo=x.y.z ident=ph10)
by myhost.test.ex with esmtp (Exim x.yz)
id 10HmaX-0005vi-00
for ph10@???; Tue, 2 Mar 1999 09:44:33 +0000
This is a test message.
From nonnull@??? Tue Mar 02 09:44:33 1999
Received: from [1.2.3.4] (helo=x.y.z ident=ph10)
by myhost.test.ex with esmtp (Exim x.yz)
id 10HmaY-0005vi-00
for ph10@???; Tue, 2 Mar 1999 09:44:33 +0000
This is a test message.
Index: 566
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/566,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 566 8 Oct 2004 14:49:53 -0000 1.1
+++ 566 4 Jan 2005 13:31:41 -0000 1.2
@@ -1,8 +1,18 @@
0 $host_data in multiple messages in one connection
-exim -bs -oMa 1.2.3.4
+exim -odi -bs -oMa 1.2.3.4
ehlo x.y.z
mail from:<>
-rset
+rcpt to:<ph10@???>
+data
+This is a test message.
+.
mail from:<>
+rset
+mail from:<nonnull@???>
+rcpt to:<ph10@???>
+data
+This is a test message.
+.
+mail from:<third@???>
quit
****
Index: 566
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/566,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 566 8 Oct 2004 14:50:14 -0000 1.1
+++ 566 4 Jan 2005 13:31:41 -0000 1.2
@@ -3,7 +3,15 @@
250-SIZE 52428800
250-PIPELINING
250 HELP
-550 Administrative prohibition
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmaX-0005vi-00
+250 OK
250 Reset OK
-550 Administrative prohibition
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmaY-0005vi-00
+250 OK
221 myhost.test.ex closing connection