Variable expansion with variables containing '%' (ldap with 2.3.6)

Matthias Lay matthias.lay at securepoint.de
Mon Jul 1 13:37:40 EEST 2019


Am Mon, 1 Jul 2019 13:08:46 +0300 (EEST)
schrieb Aki Tuomi <aki.tuomi at open-xchange.com>:

> Hi,
> 
> there seems to be a problem when expanding variables containing a
> single '%' in value in dovecot V2.3.6
> 
> having a user defined Variable in user_attrs like
> 
> user_attrs = name=home=/maildir/%Ln,
> =myvar=path/%L{ldap:sAMAccountName}
> 
> 
> and sAMAccountName conains a '%', in my example "sonder%zeichen"
> leads to:
> 
> lda(sonder%zeichen)<5723><ov9uCHjOGV1bFgAACDoIoQ>: Fatal: Failed to
> expand plugin setting myvar = 'path/sonder%zeichen': Unknown
> variable '%z'
> 
> same setup works with dovecot 2.2.29
> 
> Any Feedback appreciated.
> Thanks.
> Matze
> 
> You can use %% to escape a %
> ---
> Aki Tuomi
> 

Hi Aki,

nope this doesnt work. if I use 'sonder%%zeichen', the ldap lookup
searches for the User/Value "sonder%%zeichen" in ldap/AD. what fails, as
this user doesnt exist.

and I cant escape the value in all cases anyway, as its an remote
value, coming from the ldap server.

seems to me the sequence of intepreting variables and modifiers changed
between 2.2 ans 2.3
now it gets the variable value from remote in the first place, and
interprets the value itself for more variables or modifiers, which
might not be what you want.

like in a subquery using 

@mail=%{ldap:mailDN}

but I dont use subqueries. just a simple expansion

=myvar=%{ldap:mailDN}

any more ideas?







More information about the dovecot mailing list