Pull some fixes from proxychains sf forum.

This commit is contained in:
Adam Hamsik 2012-01-27 15:41:40 +01:00
parent 8d9bb5545c
commit 952a039801
2 changed files with 15 additions and 5 deletions

View File

@ -867,10 +867,18 @@ int proxy_getaddrinfo(const char *node, const char *service,
(*res)->ai_canonname = addr_name;
(*res)->ai_next = NULL;
(*res)->ai_family = sockaddr_space->sa_family = AF_INET;
(*res)->ai_socktype = hints->ai_socktype;
(*res)->ai_flags = hints->ai_flags;
(*res)->ai_protocol = hints->ai_protocol;
(*res)->ai_addrlen = sizeof(*sockaddr_space);
if (hints != NULL) {
(*res)->ai_socktype = hints->ai_socktype;
(*res)->ai_flags = hints->ai_flags;
(*res)->ai_protocol = hints->ai_protocol;
} else {
(*res)->ai_socktype = 0;
(*res)->ai_flags = 0;
(*res)->ai_protocol = 0;
}
goto out;
err3:
free(sockaddr_space);

View File

@ -409,8 +409,10 @@ void freeaddrinfo(struct addrinfo *res)
if(!proxychains_resolver)
true_freeaddrinfo(res);
else {
free(res->ai_addr);
free(res);
if (res != NULL) {
free(res->ai_addr);
free(res);
}
}
return;
}