On 29.07.2016 15:35, Nagy, Attila wrote:
Hi,
I use pass and userdb with dict protocol in a similar way:
key passdb { key = passdb^MAuth-User: %u^MAuth-Pass: %w^MAuth-Protocol: %s^MClient-IP: %r format = json }
(^M is an \r character, inserted with vi CTRL-v + enter)
Until 2.2.24 this has worked, but 2.2.25 seems to convert that ASCII 13 into an ASCII 1 and an "r".
Python printout from what I get with 2.2.25:
'Lshared/passdb\x01rAuth-User: user\x01rAuth-Pass: pass\x01rAuth-Protocol: pop3\x01rClient-IP: 1.2.3.4'
Is this change intentional? Why?
Hi!
Dict protocol escapes you newlines. You are expected to de-escape them yourself.
Following escapes are done, you can de-escape them with your client.
\x00 => \x10 \x01 => \x11 \t => \x1t \r => \x1r \n => \x1n
The change has been made to avoid breakage if newlines or NULLs are injected into the data.
Aki