]> git.kaiwu.me - nginx.git/commitdiff
Resolver: fixed off-by-one write in ngx_resolver_copy().
authorMaxim Dounin <mdounin@mdounin.ru>
Tue, 25 May 2021 12:17:36 +0000 (15:17 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Tue, 25 May 2021 12:17:36 +0000 (15:17 +0300)
Reported by Luis Merino, Markus Vervier, Eric Sesterhenn, X41 D-Sec GmbH.

src/core/ngx_resolver.c

index 7939070102782c0ac1bb11d9ccd54b954e54139b..63b26193df4fa0a8ebba9a213e6ca69bbc322b1a 100644 (file)
@@ -4008,15 +4008,15 @@ done:
             n = *src++;
 
         } else {
+            if (dst != name->data) {
+                *dst++ = '.';
+            }
+
             ngx_strlow(dst, src, n);
             dst += n;
             src += n;
 
             n = *src++;
-
-            if (n != 0) {
-                *dst++ = '.';
-            }
         }
 
         if (n == 0) {