]> git.kaiwu.me - nginx.git/commitdiff
fix segfault when CRAM-MD5 is not enabled but client tries it
authorIgor Sysoev <igor@sysoev.ru>
Wed, 11 Jul 2007 07:47:57 +0000 (07:47 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 11 Jul 2007 07:47:57 +0000 (07:47 +0000)
src/mail/ngx_mail_handler.c

index e41983248d896b6794a35f8608b3f86bd5fd72a4..8fee001bb7ad64e25c068873a234d750cd5fd102 100644 (file)
@@ -708,7 +708,10 @@ ngx_pop3_auth_state(ngx_event_t *rev)
                                               (u_char *) "CRAM-MD5", 8)
                               == 0)
                 {
-                    if (s->args.nelts != 1) {
+                    if (!(cscf->pop3_auth_methods
+                          & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)
+                        || s->args.nelts != 1)
+                    {
                         rc = NGX_MAIL_PARSE_INVALID_COMMAND;
                         break;
                     }
@@ -1368,7 +1371,13 @@ ngx_smtp_auth_state(ngx_event_t *rev)
                                               (u_char *) "CRAM-MD5", 8)
                               == 0)
                 {
-                    if (s->args.nelts != 1) {
+                    cscf = ngx_mail_get_module_srv_conf(s,
+                                                        ngx_mail_core_module);
+
+                    if (!(cscf->smtp_auth_methods
+                          & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)
+                        || s->args.nelts != 1)
+                    {
                         rc = NGX_MAIL_PARSE_INVALID_COMMAND;
                         break;
                     }