diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2021-05-19 03:13:22 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2021-05-19 03:13:22 +0300 |
commit | fabe28259f4e191fee660a240ba347a0a8d2f1dc (patch) | |
tree | 846be8307c7be74b58919244c3fe41060d91793a /src | |
parent | 3c660ef59b545bf76f2fb2b6a37ca02bcae4b2fb (diff) | |
download | nginx-fabe28259f4e191fee660a240ba347a0a8d2f1dc.tar.gz nginx-fabe28259f4e191fee660a240ba347a0a8d2f1dc.zip |
Mail: removed dead s->arg_start handling.
As discussed in the previous change, s->arg_start handling in the "done"
labels of ngx_mail_pop3_parse_command(), ngx_mail_imap_parse_command(),
and ngx_mail_smtp_parse_command() is wrong: s->arg_start cannot be
set there, as it is handled and cleared on all code paths where the
"done" labels are reached. The relevant code is dead and now removed.
Diffstat (limited to 'src')
-rw-r--r-- | src/mail/ngx_mail.h | 1 | ||||
-rw-r--r-- | src/mail/ngx_mail_parse.c | 47 |
2 files changed, 0 insertions, 48 deletions
diff --git a/src/mail/ngx_mail.h b/src/mail/ngx_mail.h index b865a3b9e..0a0bde290 100644 --- a/src/mail/ngx_mail.h +++ b/src/mail/ngx_mail.h @@ -238,7 +238,6 @@ typedef struct { ngx_uint_t state; u_char *cmd_start; u_char *arg_start; - u_char *arg_end; ngx_uint_t literal_len; } ngx_mail_session_t; diff --git a/src/mail/ngx_mail_parse.c b/src/mail/ngx_mail_parse.c index 5d5f3b460..299858c14 100644 --- a/src/mail/ngx_mail_parse.c +++ b/src/mail/ngx_mail_parse.c @@ -124,10 +124,8 @@ ngx_mail_pop3_parse_command(ngx_mail_session_t *s) break; case CR: state = sw_almost_done; - s->arg_end = p; break; case LF: - s->arg_end = p; goto done; default: if (s->args.nelts <= 2) { @@ -202,17 +200,6 @@ ngx_mail_pop3_parse_command(ngx_mail_session_t *s) done: s->buffer->pos = p + 1; - - if (s->arg_start) { - arg = ngx_array_push(&s->args); - if (arg == NULL) { - return NGX_ERROR; - } - arg->len = s->arg_end - s->arg_start; - arg->data = s->arg_start; - s->arg_start = NULL; - } - s->state = (s->command != NGX_POP3_AUTH) ? sw_start : sw_argument; return NGX_OK; @@ -220,7 +207,6 @@ done: invalid: s->state = sw_invalid; - s->arg_start = NULL; /* skip invalid command till LF */ @@ -436,10 +422,8 @@ ngx_mail_imap_parse_command(ngx_mail_session_t *s) break; case CR: state = sw_almost_done; - s->arg_end = p; break; case LF: - s->arg_end = p; goto done; case '"': if (s->args.nelts <= 2) { @@ -614,22 +598,6 @@ ngx_mail_imap_parse_command(ngx_mail_session_t *s) done: s->buffer->pos = p + 1; - - if (s->arg_start) { - arg = ngx_array_push(&s->args); - if (arg == NULL) { - return NGX_ERROR; - } - arg->len = s->arg_end - s->arg_start; - arg->data = s->arg_start; - - s->arg_start = NULL; - s->cmd_start = NULL; - s->quoted = 0; - s->no_sync_literal = 0; - s->literal_len = 0; - } - s->state = (s->command != NGX_IMAP_AUTHENTICATE) ? sw_start : sw_argument; return NGX_OK; @@ -637,7 +605,6 @@ done: invalid: s->state = sw_start; - s->arg_start = NULL; s->quoted = 0; s->backslash = 0; s->no_sync_literal = 0; @@ -786,10 +753,8 @@ ngx_mail_smtp_parse_command(ngx_mail_session_t *s) break; case CR: state = sw_almost_done; - s->arg_end = p; break; case LF: - s->arg_end = p; goto done; default: if (s->args.nelts <= 10) { @@ -849,17 +814,6 @@ ngx_mail_smtp_parse_command(ngx_mail_session_t *s) done: s->buffer->pos = p + 1; - - if (s->arg_start) { - arg = ngx_array_push(&s->args); - if (arg == NULL) { - return NGX_ERROR; - } - arg->len = s->arg_end - s->arg_start; - arg->data = s->arg_start; - s->arg_start = NULL; - } - s->state = (s->command != NGX_SMTP_AUTH) ? sw_start : sw_argument; return NGX_OK; @@ -867,7 +821,6 @@ done: invalid: s->state = sw_invalid; - s->arg_start = NULL; /* skip invalid command till LF */ |