Mail: added a check for the number of arguments in MAIL/RCPT.

Missed during introduction of the SMTP pipelining support (04e43d03e153,
1.5.6).  Previously, the check wasn't needed as s->buffer was used directly
and the number of arguments didn't matter.

Reported by Svyatoslav Nikolsky.
This commit is contained in:
Maxim Dounin 2014-05-21 21:56:20 +04:00
parent 5afdcc4fc5
commit b24b30e74a
1 changed files with 10 additions and 0 deletions

View File

@ -679,6 +679,11 @@ ngx_mail_smtp_mail(ngx_mail_session_t *s, ngx_connection_t *c)
return NGX_OK;
}
if (s->args.nelts == 0) {
ngx_str_set(&s->out, smtp_invalid_argument);
return NGX_OK;
}
arg = s->args.elts;
arg += s->args.nelts - 1;
@ -713,6 +718,11 @@ ngx_mail_smtp_rcpt(ngx_mail_session_t *s, ngx_connection_t *c)
return NGX_OK;
}
if (s->args.nelts == 0) {
ngx_str_set(&s->out, smtp_invalid_argument);
return NGX_OK;
}
arg = s->args.elts;
arg += s->args.nelts - 1;