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

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


On 2.7.2019 8.24, Aki Tuomi via dovecot wrote:
> 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
>

Seems to be a bug of a kind. I'll open it in our issue tracker.

Aki



More information about the dovecot mailing list