aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-07-11 07:47:57 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-07-11 07:47:57 +0000
commita9af7bfada2fbca9b078373fb860e7e72b78d1fe (patch)
tree7f68fb12477191f146b0ebc8440a374131d0e7d0 /src
parentfa808bbc046cc2085a9799274858318b8b08dced (diff)
downloadnginx-a9af7bfada2fbca9b078373fb860e7e72b78d1fe.tar.gz
nginx-a9af7bfada2fbca9b078373fb860e7e72b78d1fe.zip
fix segfault when CRAM-MD5 is not enabled but client tries it
Diffstat (limited to 'src')
-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;
}