diff options
author | Manuel Schölling <manuel.schoelling@gmx.de> | 2014-06-01 01:37:40 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-05 11:05:53 +0400 |
commit | 9638f6713ff556bdc34e9d18eeb7c1b25b35e5ce (patch) | |
tree | 15d915b3f585a6ad528bfa936a7d44bec9093ab2 /net/dns_resolver | |
parent | 555878b9ee83b08701100baa0fd79d3954a37ce7 (diff) | |
download | linux-9638f6713ff556bdc34e9d18eeb7c1b25b35e5ce.tar.xz |
dns_resolver: Do not accept domain names longer than 255 chars
According to RFC1035 "[...] the total length of a domain name (i.e.,
label octets and label length octets) is restricted to 255 octets or
less."
Signed-off-by: Manuel Schölling <manuel.schoelling@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dns_resolver')
-rw-r--r-- | net/dns_resolver/dns_query.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/dns_resolver/dns_query.c b/net/dns_resolver/dns_query.c index e7b6d53eef88..5b499589613f 100644 --- a/net/dns_resolver/dns_query.c +++ b/net/dns_resolver/dns_query.c @@ -93,8 +93,8 @@ int dns_query(const char *type, const char *name, size_t namelen, } if (!namelen) - namelen = strlen(name); - if (namelen < 3) + namelen = strnlen(name, 256); + if (namelen < 3 || namelen > 255) return -EINVAL; desclen += namelen + 1; |