aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2013-09-30 22:10:13 +0400
committerMaxim Dounin <mdounin@mdounin.ru>2013-09-30 22:10:13 +0400
commitef8c64acbe7b826b2bbd2dacc0e173cf79b26d37 (patch)
tree9aef3e1e2f31c431ffc30b5d2ed66ac71033c07d /src
parentaa36cc39a40a8d6a1e5fbc7a527b1a39db790d01 (diff)
downloadnginx-ef8c64acbe7b826b2bbd2dacc0e173cf79b26d37.tar.gz
nginx-ef8c64acbe7b826b2bbd2dacc0e173cf79b26d37.zip
Mail: fixed segfault with ssl/starttls at mail{} level and no cert.
A configuration like "mail { starttls on; server {}}" triggered NULL pointer dereference in ngx_mail_ssl_merge_conf() as conf->file was not set.
Diffstat (limited to 'src')
-rw-r--r--src/mail/ngx_mail_ssl_module.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mail/ngx_mail_ssl_module.c b/src/mail/ngx_mail_ssl_module.c
index 66aa18c3b..18fd66aed 100644
--- a/src/mail/ngx_mail_ssl_module.c
+++ b/src/mail/ngx_mail_ssl_module.c
@@ -235,6 +235,11 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
mode = "";
}
+ if (conf->file == NULL) {
+ conf->file = prev->file;
+ conf->line = prev->line;
+ }
+
if (*mode) {
if (conf->certificate.len == 0) {