diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2007-07-13 10:44:36 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2007-07-13 10:44:36 +0000 |
| commit | 284cc40ce0188b712c4fae24f25dc47c02cf6aa7 (patch) | |
| tree | e366a1d32e313b294311a611566fbcc01f912258 /src | |
| parent | 537cd5a5c45e6fc54ea9434a5cb8719b4ad10a3b (diff) | |
| download | nginx-284cc40ce0188b712c4fae24f25dc47c02cf6aa7.tar.gz nginx-284cc40ce0188b712c4fae24f25dc47c02cf6aa7.tar.bz2 | |
r1287 merge:
fix segfault when CRAM-MD5 is not enabled but client tries it
Diffstat (limited to 'src')
| -rw-r--r-- | src/mail/ngx_mail_handler.c | 13 |
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; } |
