summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog4
-rw-r--r--doc/doc-txt/NewStuff5
-rw-r--r--src/ACKNOWLEDGMENTS3
-rw-r--r--src/src/readconf.c26
4 files changed, 28 insertions, 10 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index c3d1fe70a..1d047283d 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.236 2005/09/19 11:56:11 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.237 2005/09/19 14:01:51 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -210,6 +210,8 @@ TF/06 The fix for widen_domains has also been applied to qualify_single and
PH/49 Michael Haardt's randomized retrying, but as a separate retry parameter
type ("H").
+PH/50 Make never_users, trusted_users, admin_groups, trusted_groups expandable.
+
Exim version 4.52
-----------------
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 4640547ae..87e364df6 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.72 2005/09/19 11:56:11 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.73 2005/09/19 14:01:51 ph10 Exp $
New Features in Exim
--------------------
@@ -165,6 +165,9 @@ PH/13 A new letter, "H", is available in retry parameter sets. It is similar
cluster restart at once, and may synchronize their queue processing
times.
+PH/14 The options never_users, trusted_users, admin_groups, and trusted_groups
+ are now expanded when the configuration file is read.
+
Exim version 4.52
-----------------
diff --git a/src/ACKNOWLEDGMENTS b/src/ACKNOWLEDGMENTS
index 9b60b6f30..abaa254b3 100644
--- a/src/ACKNOWLEDGMENTS
+++ b/src/ACKNOWLEDGMENTS
@@ -1,4 +1,4 @@
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.35 2005/09/19 11:56:11 ph10 Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.36 2005/09/19 14:01:51 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -208,6 +208,7 @@ Alexander Sabourenkov Patch to add saslauthd daemon support
Patch for MySQL non-data queries
David Saez Suggested patch for $sender_hostname lookup if needed
Support for the clamd virus scanner
+Jonathan Sambrook Suggested patch for expanding uid and gid lists
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
diff --git a/src/src/readconf.c b/src/src/readconf.c
index 3ceece489..2a0b9d120 100644
--- a/src/src/readconf.c
+++ b/src/src/readconf.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/readconf.c,v 1.13 2005/09/19 11:56:11 ph10 Exp $ */
+/* $Cambridge: exim/src/src/readconf.c,v 1.14 2005/09/19 14:01:51 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1625,10 +1625,16 @@ switch (type)
int count = 1;
uid_t *list;
int ptr = 0;
- uschar *p = sptr;
+ uschar *p;
+ uschar *op = expand_string (sptr);
+
+ if (op == NULL)
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "failed to expand %s: %s",
+ name, expand_string_message);
+ p = op;
if (*p != 0) count++;
- while (*p != 0) if (*p++ == ':') count++;
+ while (*p != 0) if (*p++ == ':' && *p != 0) count++;
list = store_malloc(count*sizeof(uid_t));
list[ptr++] = (uid_t)(count - 1);
@@ -1637,7 +1643,7 @@ switch (type)
else
*((uid_t **)((uschar *)data_block + (long int)(ol->value))) = list;
- p = sptr;
+ p = op;
while (count-- > 1)
{
int sep = 0;
@@ -1660,10 +1666,16 @@ switch (type)
int count = 1;
gid_t *list;
int ptr = 0;
- uschar *p = sptr;
+ uschar *p;
+ uschar *op = expand_string (sptr);
+
+ if (op == NULL)
+ log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN, "failed to expand %s: %s",
+ name, expand_string_message);
+ p = op;
if (*p != 0) count++;
- while (*p != 0) if (*p++ == ':') count++;
+ while (*p != 0) if (*p++ == ':' && *p != 0) count++;
list = store_malloc(count*sizeof(gid_t));
list[ptr++] = (gid_t)(count - 1);
@@ -1672,7 +1684,7 @@ switch (type)
else
*((gid_t **)((uschar *)data_block + (long int)(ol->value))) = list;
- p = sptr;
+ p = op;
while (count-- > 1)
{
int sep = 0;