comparison src/core/ngx_resolver.c @ 4610:778d2cc03e22

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.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 26 Apr 2012 12:58:42 +0000
parents 1bddc91e78d6
children 3171ec7d0d05
comparison
equal deleted inserted replaced
4609:22ab12943ed6 4610:778d2cc03e22
1832 1832
1833 len = 0; 1833 len = 0;
1834 p--; 1834 p--;
1835 *p-- = '\0'; 1835 *p-- = '\0';
1836 1836
1837 if (ctx->name.len == 0) {
1838 return NGX_DECLINED;
1839 }
1840
1837 for (s = ctx->name.data + ctx->name.len - 1; s >= ctx->name.data; s--) { 1841 for (s = ctx->name.data + ctx->name.len - 1; s >= ctx->name.data; s--) {
1838 if (*s != '.') { 1842 if (*s != '.') {
1839 *p = *s; 1843 *p = *s;
1840 len++; 1844 len++;
1841 1845