From: Igor Sysoev Date: Mon, 14 Nov 2011 16:12:25 +0000 (+0000) Subject: Merge of r4268: X-Git-Tag: release-1.0.10~3 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=13f1b5adee1af73e801facf68c229c6e045b0a23;p=nginx.git Merge of r4268: Fixed compression pointer processing in DNS response greater than 255 bytes. Thanks to Ben Hawkes. --- diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index ab7883011..32cd555b5 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -1922,7 +1922,13 @@ done: n = *src++; for ( ;; ) { - if (n != 0xc0) { + if (n & 0xc0) { + n = ((n & 0x3f) << 8) + *src; + src = &buf[n]; + + n = *src++; + + } else { ngx_memcpy(dst, src, n); dst += n; src += n; @@ -1932,12 +1938,6 @@ done: if (n != 0) { *dst++ = '.'; } - - } else { - n = ((n & 0x3f) << 8) + *src; - src = &buf[n]; - - n = *src++; } if (n == 0) {