Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 7849:2fd40ee19c20
Resolver: fixed off-by-one write in ngx_resolver_copy().
Reported by Luis Merino, Markus Vervier, Eric Sesterhenn, X41 D-Sec GmbH.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 25 May 2021 15:17:36 +0300 |
parents | fdc3d40979b0 |
children | a093dd4ce154 |
comparison
equal
deleted
inserted
replaced
7848:1bde031b59ff | 7849:2fd40ee19c20 |
---|---|
4006 src = &buf[n]; | 4006 src = &buf[n]; |
4007 | 4007 |
4008 n = *src++; | 4008 n = *src++; |
4009 | 4009 |
4010 } else { | 4010 } else { |
4011 if (dst != name->data) { | |
4012 *dst++ = '.'; | |
4013 } | |
4014 | |
4011 ngx_strlow(dst, src, n); | 4015 ngx_strlow(dst, src, n); |
4012 dst += n; | 4016 dst += n; |
4013 src += n; | 4017 src += n; |
4014 | 4018 |
4015 n = *src++; | 4019 n = *src++; |
4016 | |
4017 if (n != 0) { | |
4018 *dst++ = '.'; | |
4019 } | |
4020 } | 4020 } |
4021 | 4021 |
4022 if (n == 0) { | 4022 if (n == 0) { |
4023 name->len = dst - name->data; | 4023 name->len = dst - name->data; |
4024 return NGX_OK; | 4024 return NGX_OK; |