r1287 merge:
fix segfault when CRAM-MD5 is not enabled but client tries it
diff --git a/src/mail/ngx_mail_handler.c b/src/mail/ngx_mail_handler.c
index e419832..8fee001 100644
--- a/src/mail/ngx_mail_handler.c
+++ b/src/mail/ngx_mail_handler.c
@@ -708,7 +708,10 @@
(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 @@
(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;
}