aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2021-05-19 03:13:22 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2021-05-19 03:13:22 +0300
commitfabe28259f4e191fee660a240ba347a0a8d2f1dc (patch)
tree846be8307c7be74b58919244c3fe41060d91793a /src
parent3c660ef59b545bf76f2fb2b6a37ca02bcae4b2fb (diff)
downloadnginx-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.h1
-rw-r--r--src/mail/ngx_mail_parse.c47
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 */