ph10 2005/08/01 16:01:13 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src/src expand.c
exim-test-orig/AutoTest/aux 079.f-user
exim-test-orig/AutoTest/log 079
exim-test-orig/AutoTest/mail 079.ph10
exim-test-orig/AutoTest/scripts 079
exim-test-orig/AutoTest/stderr 079
exim-test-orig/AutoTest/stdout 079
Log:
The use of forbid_filter_existstest now also locks out ${stat:
expansions.
Revision Changes Path
1.188 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.59 +3 -0 exim/exim-doc/doc-txt/NewStuff
1.39 +6 -0 exim/exim-src/src/expand.c
1.2 +2 -0 exim/exim-test-orig/AutoTest/aux/079.f-user
1.4 +9 -0 exim/exim-test-orig/AutoTest/log/079
1.4 +36 -0 exim/exim-test-orig/AutoTest/mail/079.ph10
1.2 +4 -0 exim/exim-test-orig/AutoTest/scripts/079
1.5 +1 -1 exim/exim-test-orig/AutoTest/stderr/079
1.2 +4 -4 exim/exim-test-orig/AutoTest/stdout/079
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.187
retrieving revision 1.188
diff -u -r1.187 -r1.188
--- ChangeLog 1 Aug 2005 14:41:25 -0000 1.187
+++ ChangeLog 1 Aug 2005 15:01:12 -0000 1.188
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.187 2005/08/01 14:41:25 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.188 2005/08/01 15:01:12 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -24,6 +24,9 @@
PH/05 Replaced all Tom's calls to snprintf() with calls to the internal
string_format() function, because snprintf() does not exist on all
operating systems.
+
+PH/06 The use of forbid_filter_existstest now also locks out the use of the
+ ${stat: expansion item.
Exim version 4.52
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- NewStuff 1 Aug 2005 14:00:34 -0000 1.58
+++ NewStuff 1 Aug 2005 15:01:12 -0000 1.59
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.58 2005/08/01 14:00:34 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.59 2005/08/01 15:01:12 ph10 Exp $
New Features in Exim
--------------------
@@ -49,6 +49,9 @@
PH/02 The variable $message_id is now deprecated, to be replaced by
$message_exim_id, which makes it clearer which ID is being referenced.
+
+PH/03 The use of forbid_filter_existstest now also locks out the use of the
+ ${stat: expansion item.
Exim version 4.52
Index: expand.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/expand.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- expand.c 1 Aug 2005 14:00:35 -0000 1.38
+++ expand.c 1 Aug 2005 15:01:12 -0000 1.39
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/expand.c,v 1.38 2005/08/01 14:00:35 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/expand.c,v 1.39 2005/08/01 15:01:12 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -4845,6 +4845,12 @@
int i;
mode_t mode;
struct stat st;
+
+ if ((expand_forbid & RDO_EXISTS) != 0)
+ {
+ expand_string_message = US"Use of the stat() expansion is not permitted";
+ goto EXPAND_FAILED;
+ }
if (stat(CS sub, &st) < 0)
{
Index: 079.f-user
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/aux/079.f-user,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 079.f-user 8 Oct 2004 14:04:55 -0000 1.1
+++ 079.f-user 1 Aug 2005 15:01:13 -0000 1.2
@@ -8,6 +8,8 @@
deliver ${lookup{$local_part}lsearch{/etc/passwd}{$value}fail}
elif $local_part is filter-exists then
deliver "${if exists{/tmp/junk}{abc}{def}}"
+elif $local_part is filter-stat then
+ deliver "${if eq{${stat:/tmp/junk}}{}{abc}{def}}"
elif $local_part is filter-readfile then
deliver ${readfile{/some/file}}
elif $local_part is filter-run then
Index: 079
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/log/079,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- 079 29 Jun 2005 14:17:02 -0000 1.3
+++ 079 1 Aug 2005 15:01:13 -0000 1.4
@@ -142,3 +142,12 @@
1999-03-02 09:44:33 10HmbZ-0005vi-00 "should give rise to vacation message" first delivery
1999-03-02 09:44:33 10HmbZ-0005vi-00 => >never_mail@??? <filter-vacation@???> R=userfilter T=address_reply
1999-03-02 09:44:33 10HmbZ-0005vi-00 Completed
+1999-03-02 09:44:33 10HmcA-0005vi-00 <= ph10@??? U=ph10 P=local S=310
+1999-03-02 09:44:33 10HmcA-0005vi-00 "should give filter error (7)" first delivery
+1999-03-02 09:44:33 10HmcA-0005vi-00 == filter-stat@??? R=userfilter defer (-17): error in filter file: failed to expand "${if eq{${stat:/tmp/junk}}{}{abc}{def}}" in deliver command: Use of the stat() expansion is not permitted
+1999-03-02 09:44:33 10HmcA-0005vi-00 ** filter-stat@???: retry timeout exceeded
+1999-03-02 09:44:33 10HmcB-0005vi-00 <= <> R=10HmcA-0005vi-00 U=exim P=local S=1136
+1999-03-02 09:44:33 10HmcB-0005vi-00 "Mail delivery failed: returning message to sender" first delivery
+1999-03-02 09:44:33 10HmcB-0005vi-00 => ph10 <ph10@???> R=localuser T=appendfile
+1999-03-02 09:44:33 10HmcB-0005vi-00 Completed
+1999-03-02 09:44:33 10HmcA-0005vi-00 Completed
Index: 079.ph10
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/mail/079.ph10,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- 079.ph10 29 Jun 2005 14:17:02 -0000 1.3
+++ 079.ph10 1 Aug 2005 15:01:13 -0000 1.4
@@ -400,3 +400,39 @@
X-added: qualify_domain is test.ex
+From MAILER-DAEMON Tue Mar 02 09:44:33 1999
+Return-path: <>
+Envelope-to: ph10@???
+Delivery-date: Tue, 2 Mar 1999 09:44:33 +0000
+Received: from exim by xoanon.csi.cam.ac.uk with local (Exim x.yz)
+ id 10HmcB-0005vi-00
+ for ph10@???; Tue, 2 Mar 1999 09:44:33 +0000
+X-Failed-Recipients: filter-stat@???
+Auto-Submitted: auto-generated
+From: Mail Delivery System <Mailer-Daemon@???>
+To: ph10@???
+Subject: Mail delivery failed: returning message to sender
+Message-Id: <E10HmcB-0005vi-00@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+This message was created automatically by mail delivery software.
+
+A message that you sent could not be delivered to one or more of its
+recipients. This is a permanent error. The following address(es) failed:
+
+ filter-stat@???
+ retry timeout exceeded
+
+------ This is a copy of the message, including all the headers. ------
+
+Return-path: <ph10@???>
+Received: from ph10 by xoanon.csi.cam.ac.uk with local (Exim x.yz)
+ id 10HmcA-0005vi-00
+ for filter-stat@???; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: should give filter error (7)
+Message-Id: <E10HmcA-0005vi-00@???>
+From: Philip Hazel <ph10@???>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+X-added: qualify_domain is test.ex
+
+
Index: 079
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/scripts/079,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 079 8 Oct 2004 14:49:52 -0000 1.1
+++ 079 1 Aug 2005 15:01:13 -0000 1.2
@@ -203,4 +203,8 @@
exim -odi -f never_mail@??? filter-vacation
Subject: should give rise to vacation message
****
+0
+exim -odi filter-stat
+Subject: should give filter error (7)
+****
no_msglog_check
Index: 079
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stderr/079,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- 079 1 Aug 2005 13:20:29 -0000 1.4
+++ 079 1 Aug 2005 15:01:13 -0000 1.5
@@ -44,7 +44,7 @@
calling userfilter router
rda_interpret (file): /source/exim4/AutoTest/aux/079.f-user
expanded: /source/exim4/AutoTest/aux/079.f-user
-743 bytes read from /source/exim4/AutoTest/aux/079.f-user
+832 bytes read from /source/exim4/AutoTest/aux/079.f-user
data is an Exim filter program
Filter: start of processing
Filter: end of processing
Index: 079
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/079,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 079 8 Oct 2004 14:50:13 -0000 1.1
+++ 079 1 Aug 2005 15:01:13 -0000 1.2
@@ -227,7 +227,7 @@
Testprint: message_body = This is the body of
Testprint: message_body_end = ible in the filter.
Logfile /source/exim4/AutoTest/spool/log/mainlog
-Logwrite "1999-03-02 09:44:33 10HmcA-0005vi-00 "message for filter test" first delivery\n"
+Logwrite "1999-03-02 09:44:33 10HmcC-0005vi-00 "message for filter test" first delivery\n"
Headers add "X-added: qualify_domain is test.ex"
Headers remove "remove-this"
Unseen deliver message to: mug999@??? errors_to abcd@???
@@ -239,11 +239,11 @@
Testing Exim filter file "aux/079.F"
Testprint: ------------------------------------------------
-Testprint: Test-headers: first one\nFrom: x@y\nTest-headers: another one\nMore-test-headers : yet another one\nSubject: testing, testing\nMessage-Id: <E10HmcB-0005vi-00@???>\nDate: Tue, 2 Mar 1999 09:44:33 +0000
+Testprint: Test-headers: first one\nFrom: x@y\nTest-headers: another one\nMore-test-headers : yet another one\nSubject: testing, testing\nMessage-Id: <E10HmcD-0005vi-00@???>\nDate: Tue, 2 Mar 1999 09:44:33 +0000
Testprint: ------------------------------------------------
Headers remove "test-headers:more-test-headers"
Headers add "added-header: this is added\nadded-header2: a second line"
-Testprint: From: x@y\nSubject: testing, testing\nMessage-Id: <E10HmcB-0005vi-00@???>\nDate: Tue, 2 Mar 1999 09:44:33 +0000\nadded-header: this is added\nadded-header2: a second line
+Testprint: From: x@y\nSubject: testing, testing\nMessage-Id: <E10HmcD-0005vi-00@???>\nDate: Tue, 2 Mar 1999 09:44:33 +0000\nadded-header: this is added\nadded-header2: a second line
Testprint: ------------------------------------------------
Testprint: message_size = 122
Testprint: message_body_size = 0
@@ -251,7 +251,7 @@
Testprint: message_body =
Testprint: message_body_end =
Logfile /source/exim4/AutoTest/spool/log/mainlog
-Logwrite "1999-03-02 09:44:33 10HmcB-0005vi-00 "testing, testing" first delivery\n"
+Logwrite "1999-03-02 09:44:33 10HmcD-0005vi-00 "testing, testing" first delivery\n"
Headers add "X-added: qualify_domain is test.ex"
Headers remove "remove-this"
Unseen deliver message to: mug999@??? errors_to abcd@???