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

Aki Tuomi aki.tuomi at open-xchange.com
Tue Jul 2 08:24:40 EEST 2019


On 1.7.2019 13.37, Matthias Lay via dovecot wrote:
> 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?
>
>
>
>
>

I have to investigate this a bit.


Aki



More information about the dovecot mailing list