# HG changeset patch # User Maxim Dounin # Date 1621945058 -10800 # Node ID a093dd4ce1549ddde0c843e5e3286506eb3181f0 # Parent 2fd40ee19c20cfee5a6024426780a3729a08e96b Resolver: fixed off-by-one read in ngx_resolver_copy(). It is believed to be harmless, and in the worst case it uses some uninitialized memory as a part of the compression pointer length, eventually leading to the "name is out of DNS response" error. diff -r 2fd40ee19c20 -r a093dd4ce154 src/core/ngx_resolver.c --- a/src/core/ngx_resolver.c Tue May 25 15:17:36 2021 +0300 +++ b/src/core/ngx_resolver.c Tue May 25 15:17:38 2021 +0300 @@ -3958,6 +3958,11 @@ } if (n & 0xc0) { + if (p >= last) { + err = "name is out of DNS response"; + goto invalid; + } + n = ((n & 0x3f) << 8) + *p; p = &buf[n];