summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-07-13 10:44:36 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-07-13 10:44:36 +0000
commit284cc40ce0188b712c4fae24f25dc47c02cf6aa7 (patch)
treee366a1d32e313b294311a611566fbcc01f912258
parent537cd5a5c45e6fc54ea9434a5cb8719b4ad10a3b (diff)
downloadnginx-284cc40ce0188b712c4fae24f25dc47c02cf6aa7.tar.gz
nginx-284cc40ce0188b712c4fae24f25dc47c02cf6aa7.tar.bz2
r1287 merge:
fix segfault when CRAM-MD5 is not enabled but client tries it
-rw-r--r--src/mail/ngx_mail_handler.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mail/ngx_mail_handler.c b/src/mail/ngx_mail_handler.c
index e41983248..8fee001bb 100644
--- a/src/mail/ngx_mail_handler.c
+++ b/src/mail/ngx_mail_handler.c
@@ -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;
}