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

View File

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