From f7ffd93d3b28df5d1f19ef3adbdc15fc9134aee1 Mon Sep 17 00:00:00 2001 From: "alexis.lagoutte@gmail.com" Date: Fri, 25 Mar 2016 18:31:43 +0000 Subject: [PATCH] Fix some seg fault with venet nic FossilOrigin-Name: 8873064065f3e7e58db46f80bcc73b9373cd2862b877707de6036f0238d7b0a9 --- src/ac/conf.c | 7 +++++++ src/cw/sock_cmpaddr.c | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/src/ac/conf.c b/src/ac/conf.c index 86fcdfb2..112ffd1f 100644 --- a/src/ac/conf.c +++ b/src/ac/conf.c @@ -361,6 +361,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 @@ -388,6 +391,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); @@ -492,6 +497,8 @@ int init_bcast_addrs() sa = ifa->ifa_addr; + if (!sa) + continue; if (sa->sa_family != AF_INET) continue; diff --git a/src/cw/sock_cmpaddr.c b/src/cw/sock_cmpaddr.c index 3a8d4812..07ff8581 100644 --- a/src/cw/sock_cmpaddr.c +++ b/src/cw/sock_cmpaddr.c @@ -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; }