mirror of
https://github.com/rofl0r/proxychains-ng.git
synced 2024-12-22 04:08:47 +00:00
proxy_getaddrinfo: fix case when func was used in lieu of inet_aton
This commit is contained in:
parent
63ad1b4d70
commit
b76aa653c9
@ -825,8 +825,11 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
|||||||
// printf("proxy_getaddrinfo node %s service %s\n",node,service);
|
// printf("proxy_getaddrinfo node %s service %s\n",node,service);
|
||||||
space = calloc(1, sizeof(struct addrinfo_data));
|
space = calloc(1, sizeof(struct addrinfo_data));
|
||||||
if(!space) goto err1;
|
if(!space) goto err1;
|
||||||
|
|
||||||
if(node && !inet_aton(node, &((struct sockaddr_in *) &space->sockaddr_space)->sin_addr)) {
|
if(node && !inet_aton(node, &((struct sockaddr_in *) &space->sockaddr_space)->sin_addr)) {
|
||||||
|
/* some folks (nmap) use getaddrinfo() with AI_NUMERICHOST to check whether a string
|
||||||
|
containing a numeric ip was passed. we must return failure in that case. */
|
||||||
|
if(hints && (hints->ai_flags & AI_NUMERICHOST)) return EAI_NONAME;
|
||||||
hp = proxy_gethostbyname(node, &ghdata);
|
hp = proxy_gethostbyname(node, &ghdata);
|
||||||
if(hp)
|
if(hp)
|
||||||
memcpy(&((struct sockaddr_in *) &space->sockaddr_space)->sin_addr,
|
memcpy(&((struct sockaddr_in *) &space->sockaddr_space)->sin_addr,
|
||||||
@ -841,7 +844,7 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
|||||||
|
|
||||||
*res = p = &space->addrinfo_space;
|
*res = p = &space->addrinfo_space;
|
||||||
assert((size_t)p == (size_t) space);
|
assert((size_t)p == (size_t) space);
|
||||||
|
|
||||||
p->ai_addr = &space->sockaddr_space;
|
p->ai_addr = &space->sockaddr_space;
|
||||||
if(node)
|
if(node)
|
||||||
strncpy(space->addr_name, node, sizeof(space->addr_name));
|
strncpy(space->addr_name, node, sizeof(space->addr_name));
|
||||||
@ -857,7 +860,7 @@ int proxy_getaddrinfo(const char *node, const char *service, const struct addrin
|
|||||||
} else {
|
} else {
|
||||||
p->ai_flags = (AI_V4MAPPED | AI_ADDRCONFIG);
|
p->ai_flags = (AI_V4MAPPED | AI_ADDRCONFIG);
|
||||||
}
|
}
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
err2:
|
err2:
|
||||||
free(space);
|
free(space);
|
||||||
|
Loading…
Reference in New Issue
Block a user