aboutsummaryrefslogtreecommitdiff
path: root/src/mail/ngx_mail_pop3_module.c
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2017-03-06 17:56:23 +0300
committerSergey Kandaurov <pluknet@nginx.com>2017-03-06 17:56:23 +0300
commitfbe9759e4b8d0a80863a4000a724111b0741a9ab (patch)
treee72ace337942748f273660c31ff154592ce87f89 /src/mail/ngx_mail_pop3_module.c
parent0f89206a1078a216961d974ed5bcf6464b65cbdf (diff)
downloadnginx-fbe9759e4b8d0a80863a4000a724111b0741a9ab.tar.gz
nginx-fbe9759e4b8d0a80863a4000a724111b0741a9ab.zip
Mail: don't emit separator in capability lists for APOP.
Notably, this fixes CAPA and AUTH output. The bug had appeared in nginx 1.11.6 (73b451d304c0).
Diffstat (limited to 'src/mail/ngx_mail_pop3_module.c')
-rw-r--r--src/mail/ngx_mail_pop3_module.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mail/ngx_mail_pop3_module.c b/src/mail/ngx_mail_pop3_module.c
index bd60e0a67..a67307073 100644
--- a/src/mail/ngx_mail_pop3_module.c
+++ b/src/mail/ngx_mail_pop3_module.c
@@ -185,6 +185,10 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
m <<= 1, i++)
{
+ if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+ continue;
+ }
+
if (m & conf->auth_methods) {
size += 1 + ngx_mail_pop3_auth_methods_names[i].len;
}
@@ -212,6 +216,10 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
m <<= 1, i++)
{
+ if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+ continue;
+ }
+
if (m & conf->auth_methods) {
*p++ = ' ';
p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data,
@@ -248,6 +256,10 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
m <<= 1, i++)
{
+ if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+ continue;
+ }
+
if (m & conf->auth_methods) {
size += ngx_mail_pop3_auth_methods_names[i].len
+ sizeof(CRLF) - 1;
@@ -269,6 +281,10 @@ ngx_mail_pop3_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
m <<= 1, i++)
{
+ if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+ continue;
+ }
+
if (m & conf->auth_methods) {
p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data,
ngx_mail_pop3_auth_methods_names[i].len);