server: Don't read beyond the bounds of ServerInfo.ip and ServerInfo.ip6.
This commit is contained in:
parent
dc336d1a63
commit
5f1db61bdf
1 changed files with 3 additions and 3 deletions
|
@ -996,14 +996,14 @@ serv_connect_resolved(struct Client *client_p)
|
|||
|
||||
if(ServerConfVhosted(server_p))
|
||||
{
|
||||
memcpy(&myipnum, &server_p->my_ipnum, sizeof(myipnum));
|
||||
memcpy(&myipnum, &server_p->my_ipnum, sizeof(server_p->my_ipnum));
|
||||
((struct sockaddr_in *)&myipnum)->sin_port = 0;
|
||||
myipnum.ss_family = server_p->aftype;
|
||||
|
||||
}
|
||||
else if(server_p->aftype == AF_INET && ServerInfo.specific_ipv4_vhost)
|
||||
{
|
||||
memcpy(&myipnum, &ServerInfo.ip, sizeof(myipnum));
|
||||
memcpy(&myipnum, &ServerInfo.ip, sizeof(ServerInfo.ip));
|
||||
((struct sockaddr_in *)&myipnum)->sin_port = 0;
|
||||
myipnum.ss_family = AF_INET;
|
||||
SET_SS_LEN(&myipnum, sizeof(struct sockaddr_in));
|
||||
|
@ -1012,7 +1012,7 @@ serv_connect_resolved(struct Client *client_p)
|
|||
#ifdef RB_IPV6
|
||||
else if((server_p->aftype == AF_INET6) && ServerInfo.specific_ipv6_vhost)
|
||||
{
|
||||
memcpy(&myipnum, &ServerInfo.ip6, sizeof(myipnum));
|
||||
memcpy(&myipnum, &ServerInfo.ip6, sizeof(ServerInfo.ip6));
|
||||
((struct sockaddr_in6 *)&myipnum)->sin6_port = 0;
|
||||
myipnum.ss_family = AF_INET6;
|
||||
SET_SS_LEN(&myipnum, sizeof(struct sockaddr_in6));
|
||||
|
|
Loading…
Reference in a new issue