summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2006-02-22 15:08:20 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2006-02-22 15:08:20 +0000
commit944a9c55d5b7d3d50ea8b8fabfb7a7be5ca8693f (patch)
tree8b8c4ed000a02c8550729a3bd3b881b95ae1945b
parent2632889eca3018763375f85b31212712044c395f (diff)
Limit retry_interval_max to 24h to avoid overflow problems.
-rw-r--r--doc/doc-txt/ChangeLog6
-rw-r--r--doc/doc-txt/NewStuff7
-rw-r--r--src/src/readconf.c6
-rw-r--r--test/confs/00012
-rw-r--r--test/scripts/0000-Basic/00011
-rw-r--r--test/stdout/00011
6 files changed, 19 insertions, 4 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 6385f60de..764485175 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.310 2006/02/22 14:46:44 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.311 2006/02/22 15:08:20 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -221,6 +221,10 @@ PH/42 The content-scanning code uses fopen() to create files in which to put
mode, then resets the umask. All the relevant calls to fopen() in the
content scanning code have been changed to use this function.
+PH/43 If retry_interval_max is set greater than 24 hours, it is quietly reset
+ to 24 hours. This avoids potential overflow problems when processing G
+ and H retry rules. I suspect nobody ever tinkers with this value.
+
Exim version 4.60
-----------------
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 7627fb7f9..14e08ee78 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.88 2006/02/21 16:24:19 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.89 2006/02/22 15:08:20 ph10 Exp $
New Features in Exim
--------------------
@@ -69,6 +69,11 @@ PH/10 When compiled on FreeBSD, NetBSD, or BSD/OS, the pipe transport has a new
uid under which the pipe is to run are obtained from the login class
database.
+PH/11 If retry_interval_max is set greater than 24 hours, it is quietly reset
+ to 24 hours. This avoids potential overflow problems when processing G
+ and H retry rules, and it seems reasonable to require a retry at least
+ once a day.
+
Version 4.60
------------
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 37df2464e..59e75d0a4 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/readconf.c,v 1.20 2006/02/16 14:54:15 ph10 Exp $ */
+/* $Cambridge: exim/src/src/readconf.c,v 1.21 2006/02/22 15:08:20 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2819,6 +2819,10 @@ wanted. */
if (timezone_string != NULL && *timezone_string == 0) timezone_string = NULL;
+/* The max retry interval must not be greater than 24 hours. */
+
+if (retry_interval_max > 24*60*60) retry_interval_max = 24*60*60;
+
/* remote_max_parallel must be > 0 */
if (remote_max_parallel <= 0) remote_max_parallel = 1;
diff --git a/test/confs/0001 b/test/confs/0001
index 7f7fb4a1e..049cd1787 100644
--- a/test/confs/0001
+++ b/test/confs/0001
@@ -158,7 +158,7 @@ no_recipients_max_reject
remote_max_parallel = 1
remote_sort_domains =
retry_data_expire = 24h
-retry_interval_max = 1d
+retry_interval_max = 3d
return_path_remove
rfc1413_hosts =
sender_unqualified_hosts = localhost:some.host.name
diff --git a/test/scripts/0000-Basic/0001 b/test/scripts/0000-Basic/0001
index 039c7a668..4b5f282ca 100644
--- a/test/scripts/0000-Basic/0001
+++ b/test/scripts/0000-Basic/0001
@@ -20,6 +20,7 @@ exim -bP accept_8bitmime \
never_users \
percent_hack_domains \
qualify_domain \
+ retry_interval_max \
receive_timeout \
sender_unqualified_hosts \
tcp_nodelay \
diff --git a/test/stdout/0001 b/test/stdout/0001
index 6d605f251..77d202228 100644
--- a/test/stdout/0001
+++ b/test/stdout/0001
@@ -13,6 +13,7 @@ max_username_length = 8
never_users = root:root
percent_hack_domains =
qualify_domain = some.dom.ain
+retry_interval_max = 1d
receive_timeout = 0s
sender_unqualified_hosts = localhost:some.host.name
no_tcp_nodelay