diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2012-03-22 11:57:18 +0000 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2012-03-22 11:57:18 +0000 |
commit | e34ff16f67cd2a243726bc37441ba48ba3643e22 (patch) | |
tree | f4801626bc3145ced65bb332175dece1647b658a /src | |
parent | 8e6728ef13f3bc3ae9d674dcd59067869d2d7c24 (diff) | |
download | nginx-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.c | 6 |
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; |