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;