From: Ruslan Ermilov Date: Thu, 26 Apr 2012 12:58:42 +0000 (+0000) Subject: Fixed segmentation fault in ngx_resolver_create_name_query(). X-Git-Tag: release-1.3.0~22 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/postgres_fdw.c?a=commitdiff_plain;h=487ba70126ddcde8f889e20617b927c9d716c792;p=nginx.git 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 index 02c484da6..ecf97d7f7 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -1834,6 +1834,10 @@ ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx) 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;