File nginx_heap_overflow_4315.patch of Package nginx-0.8.import5467
--- src/core/ngx_resolver.c
+++ src/core/ngx_resolver.c
@@ -1922,7 +1922,12 @@
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 +1937,6 @@
if (n != 0) {
*dst++ = '.';
}
-
- } else {
- n = ((n & 0x3f) << 8) + *src;
- src = &buf[n];
-
- n = *src++;
}
if (n == 0) {