Merge pull request #20 from alagoutte/seg_fault

Fix some seg fault with venet nic

FossilOrigin-Name: a60e92fca9b36dc75c966c7353df9a0fea0b2ca1a90c6c828917da293b3b5408
This commit is contained in:
7u83@mail.ru 2016-03-26 08:56:48 +00:00
commit bf355b87d4
2 changed files with 15 additions and 0 deletions

View File

@ -362,6 +362,9 @@ static int init_listen_addrs()
/* count the addresses */
int ctr = 0;
for (ifa = ifap; ifa != 0; ifa = ifa->ifa_next) {
if (!ifa->ifa_addr)
continue;
if (ifa->ifa_addr->sa_family == AF_INET && conf_ipv4)
ctr++;
#ifdef WITH_IPV6
@ -389,6 +392,8 @@ static int init_listen_addrs()
continue;
}
}
if (!ifa->ifa_addr)
continue;
if (ifa->ifa_addr->sa_family == AF_INET && conf_ipv4) {
sock_addrtostr(ifa->ifa_addr, str, 100,0);
@ -493,6 +498,8 @@ int init_bcast_addrs()
sa = ifa->ifa_addr;
if (!sa)
continue;
if (sa->sa_family != AF_INET)
continue;

View File

@ -47,6 +47,14 @@ int sock_cmpaddr(const struct sockaddr *addr1, const struct sockaddr *addr2,int
int p1,p2;
int slen;
if (!addr1){
return -1;
}
if (!addr2){
return -1;
}
if (addr1->sa_family != addr2->sa_family){
return addr1->sa_family - addr2->sa_family;
}