]> git.kaiwu.me - nginx.git/commit
Mail: fixed backslash handling in IMAP literals.
authorMaxim Dounin <mdounin@mdounin.ru>
Wed, 19 May 2021 00:13:23 +0000 (03:13 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Wed, 19 May 2021 00:13:23 +0000 (03:13 +0300)
commit82840d165144584d1b288521266051a6b5a462eb
treed32891a6d32d0e6f8fb03fa012c9d34510dbd16d
parentfabe28259f4e191fee660a240ba347a0a8d2f1dc
Mail: fixed backslash handling in IMAP literals.

Previously, s->backslash was set if any of the arguments was a quoted
string with a backslash character.  After successful command parsing
this resulted in all arguments being filtered to remove backslashes.
This is, however, incorrect, as backslashes should not be removed from
IMAP literals.  For example:

   S: * OK IMAP4 ready
   C: a01 login {9}
   S: + OK
   C: user\name "pass\"word"
   S: * BAD internal server error

resulted in "Auth-User: username" instead of "Auth-User: user\name"
as it should.

Fix is to apply backslash filtering on per-argument basis during parsing.
src/mail/ngx_mail_imap_handler.c
src/mail/ngx_mail_parse.c