comparison src/mail/ngx_mail_parse.c @ 7842:4b15f1b92100

Mail: stricter checking of IMAP tags. Only "A-Za-z0-9-._" characters now allowed (which is stricter than what RFC 3501 requires, but expected to be enough for all known clients), and tags shouldn't be longer than 32 characters.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 19 May 2021 03:13:26 +0300
parents ccdf83bee8c1
children b38728495e1a
comparison
equal deleted inserted replaced
7841:ccdf83bee8c1 7842:4b15f1b92100
263 s->state = sw_start; 263 s->state = sw_start;
264 return NGX_MAIL_PARSE_INVALID_COMMAND; 264 return NGX_MAIL_PARSE_INVALID_COMMAND;
265 case LF: 265 case LF:
266 s->state = sw_start; 266 s->state = sw_start;
267 return NGX_MAIL_PARSE_INVALID_COMMAND; 267 return NGX_MAIL_PARSE_INVALID_COMMAND;
268 default:
269 if ((ch < 'A' || ch > 'Z') && (ch < 'a' || ch > 'z')
270 && (ch < '0' || ch > '9') && ch != '-' && ch != '.'
271 && ch != '_')
272 {
273 goto invalid;
274 }
275 if (p - s->buffer->start > 31) {
276 goto invalid;
277 }
278 break;
268 } 279 }
269 break; 280 break;
270 281
271 case sw_spaces_before_command: 282 case sw_spaces_before_command:
272 switch (ch) { 283 switch (ch) {