Gitweb:
http://git.exim.org/exim.git/commitdiff/82c6910a112610ac5c121ff5321365c5dc7e8eb2
Commit: 82c6910a112610ac5c121ff5321365c5dc7e8eb2
Parent: da6dbe26770f1af0bf20891f5c7a6e58809c5788
Author: Phil Pennock <pdp@???>
AuthorDate: Sun Sep 25 01:01:41 2011 -0400
Committer: Phil Pennock <pdp@???>
CommitDate: Sun Sep 25 01:01:41 2011 -0400
EXPAND_LISTMATCH_RHS plumbed into build makefiles.
Tested builds both with and without this option, behaviour matches expectations.
---
src/src/EDITME | 20 ++++++++++++++++++++
src/src/config.h.defaults | 1 +
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/src/src/EDITME b/src/src/EDITME
index 4c1c366..a180cd5 100644
--- a/src/src/EDITME
+++ b/src/src/EDITME
@@ -1205,6 +1205,26 @@ TMPDIR="/tmp"
#------------------------------------------------------------------------------
+# Expanding match_* second paramters: BE CAREFUL IF ENABLING THIS!
+# It has proven too easy in practice for administrators to configure security
+# problems into their Exim install, by treating match_domain{}{} and friends
+# as a form of string comparison, where the second string comes from untrusted
+# data. Because these options take lists, which can include lookup;LOOKUPDATA
+# style elements, a foe can then cause Exim to, eg, execute an arbitrary MySQL
+# query, dropping tables.
+# From Exim 4.77 onwards, the second parameter is not expanded; it can still
+# be a list literal, or a macro, or a named list reference. There is also
+# the new expansion condition "inlisti" which does expand the second parameter,
+# but treats it as a list of strings; also, there's "eqi" which is probably
+# what is normally wanted.
+#
+# If you really need to have the old behaviour, know what you are doing and
+# will not complain if your system is compromised as a result of doing so, then
+# uncomment this option to get the old behaviour back.
+
+# EXPAND_LISTMATCH_RHS=yes
+
+#------------------------------------------------------------------------------
# Disabling the use of fsync(): DO NOT UNCOMMENT THE FOLLOWING LINE unless you
# really, really, really know what you are doing. And even then, think again.
# You should never uncomment this when compiling a binary for distribution.
diff --git a/src/src/config.h.defaults b/src/src/config.h.defaults
index a36cfb0..bc983c4 100644
--- a/src/src/config.h.defaults
+++ b/src/src/config.h.defaults
@@ -51,6 +51,7 @@ it's a default value. */
/* Both uid and gid are triggered by this */
#define EXIM_UID
#define EXPAND_DLFUNC
+#define EXPAND_LISTMATCH_RHS
#define FIXED_NEVER_USERS "root"