]> git.kaiwu.me - nginx.git/commitdiff
Mail: don't emit separator in capability lists for APOP.
authorSergey Kandaurov <pluknet@nginx.com>
Mon, 6 Mar 2017 14:56:23 +0000 (17:56 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Mon, 6 Mar 2017 14:56:23 +0000 (17:56 +0300)
Notably, this fixes CAPA and AUTH output.

The bug had appeared in nginx 1.11.6 (73b451d304c0).

src/mail/ngx_mail_pop3_module.c

index bd60e0a6733156967704f919522be0cc90831a5d..a673070736af9f2e44db8b78003c027b8b6a60b5 100644 (file)
@@ -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);