Mercurial > hg > nginx-quic
comparison src/mail/ngx_mail_handler.c @ 1286:a9c361479430
fix segfault when CRAM-MD5 is not enabled but client tries it
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Jul 2007 07:47:57 +0000 |
parents | bde5e4134759 |
children | 27f2299e0d80 |
comparison
equal
deleted
inserted
replaced
1285:0c10dc6a8e74 | 1286:a9c361479430 |
---|---|
706 } else if (arg[0].len == 8 | 706 } else if (arg[0].len == 8 |
707 && ngx_strncasecmp(arg[0].data, | 707 && ngx_strncasecmp(arg[0].data, |
708 (u_char *) "CRAM-MD5", 8) | 708 (u_char *) "CRAM-MD5", 8) |
709 == 0) | 709 == 0) |
710 { | 710 { |
711 if (s->args.nelts != 1) { | 711 if (!(cscf->pop3_auth_methods |
712 & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) | |
713 || s->args.nelts != 1) | |
714 { | |
712 rc = NGX_MAIL_PARSE_INVALID_COMMAND; | 715 rc = NGX_MAIL_PARSE_INVALID_COMMAND; |
713 break; | 716 break; |
714 } | 717 } |
715 | 718 |
716 s->mail_state = ngx_pop3_auth_cram_md5; | 719 s->mail_state = ngx_pop3_auth_cram_md5; |
1366 } else if (arg[0].len == 8 | 1369 } else if (arg[0].len == 8 |
1367 && ngx_strncasecmp(arg[0].data, | 1370 && ngx_strncasecmp(arg[0].data, |
1368 (u_char *) "CRAM-MD5", 8) | 1371 (u_char *) "CRAM-MD5", 8) |
1369 == 0) | 1372 == 0) |
1370 { | 1373 { |
1371 if (s->args.nelts != 1) { | 1374 cscf = ngx_mail_get_module_srv_conf(s, |
1375 ngx_mail_core_module); | |
1376 | |
1377 if (!(cscf->smtp_auth_methods | |
1378 & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) | |
1379 || s->args.nelts != 1) | |
1380 { | |
1372 rc = NGX_MAIL_PARSE_INVALID_COMMAND; | 1381 rc = NGX_MAIL_PARSE_INVALID_COMMAND; |
1373 break; | 1382 break; |
1374 } | 1383 } |
1375 | 1384 |
1376 s->mail_state = ngx_smtp_auth_cram_md5; | 1385 s->mail_state = ngx_smtp_auth_cram_md5; |