# HG changeset patch # User Ruslan Ermilov # Date 1335445122 0 # Node ID 778d2cc03e2254339337ed819850d268e45ae471 # Parent 22ab12943ed64beb4d67cd35bf4ff994a6682398 Fixed segmentation fault in ngx_resolver_create_name_query(). If name passed for resolution was { 0, NULL } (e.g. as a result of name server returning CNAME pointing to ".") pointer wrapped to (void *) -1 resulting in segmentation fault on an attempt to dereference it. Reported by Lanshun Zhou. diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -1834,6 +1834,10 @@ ngx_resolver_create_name_query(ngx_resol p--; *p-- = '\0'; + if (ctx->name.len == 0) { + return NGX_DECLINED; + } + for (s = ctx->name.data + ctx->name.len - 1; s >= ctx->name.data; s--) { if (*s != '.') { *p = *s;