aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2012-03-22 11:57:18 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2012-03-22 11:57:18 +0000
commite34ff16f67cd2a243726bc37441ba48ba3643e22 (patch)
treef4801626bc3145ced65bb332175dece1647b658a /src
parent8e6728ef13f3bc3ae9d674dcd59067869d2d7c24 (diff)
downloadnginx-e34ff16f67cd2a243726bc37441ba48ba3643e22.tar.gz
nginx-e34ff16f67cd2a243726bc37441ba48ba3643e22.zip
Resolver: added missing sanity checking when creating name queries.
Found by Veracode.
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_resolver.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 2e3047135..02c484da6 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -1840,7 +1840,7 @@ ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx)
len++;
} else {
- if (len == 0) {
+ if (len == 0 || len > 255) {
return NGX_DECLINED;
}
@@ -1851,6 +1851,10 @@ ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx)
p--;
}
+ if (len == 0 || len > 255) {
+ return NGX_DECLINED;
+ }
+
*p = (u_char) len;
return NGX_OK;