Skip to content
Snippets Groups Projects
Commit 9fc66e4d authored by Steinar H. Gunderson's avatar Steinar H. Gunderson
Browse files

Be stricter about what's a valid IP address in fake_hostent. (Patch from the Google tree.)

parent 6ecea945
No related branches found
No related tags found
No related merge requests found
......@@ -209,7 +209,27 @@ static int fake_hostent(const char *name, int family, ares_host_callback callbac
struct in6_addr in6;
if (family == AF_INET)
result = ((in.s_addr = inet_addr(name)) == INADDR_NONE ? 0 : 1);
{
/* It only looks like an IP address if it's all numbers and dots. */
int numdots = 0;
const char *p;
for (p = name; *p; p++)
{
if (!isdigit(*p) && *p != '.') {
return 0;
} else if (*p == '.') {
numdots++;
}
}
/* if we don't have 3 dots, it is illegal
* (although inet_addr doesn't think so).
*/
if (numdots != 3)
result = 0;
else
result = ((in.s_addr = inet_addr(name)) == INADDR_NONE ? 0 : 1);
}
else if (family == AF_INET6)
result = (ares_inet_pton(AF_INET6, name, &in6) < 1 ? 0 : 1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment