Dear Exim folks,

Am 05.04.21 um 11:38 schrieb Paul Menzel:

I upgraded from Exim 4.92 to 4.94, and now my formerly working configuration with the mailing list manager Sympa fails.

I already updated to using non-tainted data

```
diff --git a/exim4/conf.d/router/110_local-config_sympa b/exim4/conf.d/router/110_local-config_sympa
index 44bd8fa..b53fb73 100644
--- a/exim4/conf.d/router/110_local-config_sympa
+++ b/exim4/conf.d/router/110_local-config_sympa
@@ -10,8 +10,9 @@ sympa_aliases:
sympa_router:
   driver = accept
   domains = +sympa_domains
+  local_parts = dsearch,ret=full;/var/lib/sympa/expl/$domain_data
   require_files = +SYMPA_HOME/expl/$domain/$local_part/config
-  condition = ${if eqi{${lookup{status}lsearch{SYMPA_HOME/expl/$domain/$local_part/config}}}{open}{yes}{no}} +  condition = ${if eqi{${lookup{status}lsearch{SYMPA_HOME/expl/$domain_data/$local_part_data/config}}}{open}{yes}{no}}
   user = sympa
   local_part_suffix_optional
   local_part_suffix = -request : -editor : \
@@ -21,8 +22,9 @@ sympa_router:
sympaowner_router:
   driver = accept
   domains = +sympa_domains
+  local_parts = dsearch,ret=full;/var/lib/sympa/expl/$domain_data
   require_files = +SYMPA_HOME/expl/$domain/$local_part/config
-  condition = ${if eqi{${lookup{status}lsearch{SYMPA_HOME/expl/$domain/$local_part/config}}}{open}{yes}{no}} +  condition = ${if eqi{${lookup{status}lsearch{SYMPA_HOME/expl/$domain_data/$local_part_data/config}}}{open}{yes}{no}}
   user = sympa
   local_part_suffix_optional
   local_part_suffix = -owner : -owner+*
```

But now I am stuck with:

```
2021-04-04 21:01:52.507 [22134] 1lT9sW-0005l0-1q <= mylist-ow...@gw90.de U=sympa P=local S=1584 M8S=0 RT=0.193s id=d9c25490-6e5d-472f-3bea-6dd073d63...@gw90.de from <mylist-ow...@gw90.de> for u...@example.org us...@example.org 2021-04-04 21:01:52.530 [22135] 1lT9sW-0005l0-1q failed to open /var/lib/sympa/expl/localhost for directory search: No such file or directory
```

`mylist` is a directory in `/var/lib/sympa/expl/`.

[…]

Some more debug output (with unobfuscated data) in [1].
The panic above is actually for `u...@example.org`, which is a virtual domain setup, so `u...@example.org` is delivered to `user@localhost`.

As `localhost` is not a directory in `/var/lib/sympa/expl/`, before the change in `sympa_router` above, the router was actually skipped, because the line below failed, and the router was skipped.

condition = ${if eqi{${lookup{status}lsearch{SYMPA_HOME/expl/$domain/$local_part/config}}}{open}{yes}{no}}

With the change for Exim 4.94 to use untainted data

    local_parts = dsearch,ret=full;/var/lib/sympa/expl/$domain_data

this line now fails, because `/var/lib/sympa/expl/localhost` does not exist.

Is there a way, to make a failure in this line (non-existing directory) non-fatal and just skip the router?


Kind regards,

Paul

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to