[exim-cvs] EXPAND_LISTMATCH_RHS plumbed into build makefiles…

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] EXPAND_LISTMATCH_RHS plumbed into build makefiles.
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"