Mercurial > hg > nginx
changeset 4267:768212ca0745
Fixed compression pointer processing in DNS response greater than 255 bytes.
Thanks to Ben Hawkes.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 09 Nov 2011 13:54:07 +0000 |
parents | 4c45306936bb |
children | 25ddf6afc0ff |
files | src/core/ngx_resolver.c |
diffstat | 1 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_resolver.c Tue Nov 08 13:48:23 2011 +0000 +++ b/src/core/ngx_resolver.c Wed Nov 09 13:54:07 2011 +0000 @@ -1952,7 +1952,13 @@ 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; @@ -1962,12 +1968,6 @@ if (n != 0) { *dst++ = '.'; } - - } else { - n = ((n & 0x3f) << 8) + *src; - src = &buf[n]; - - n = *src++; } if (n == 0) {