Index: sys/ofed/drivers/infiniband/core/addr.c =================================================================== --- sys/ofed/drivers/infiniband/core/addr.c +++ sys/ofed/drivers/infiniband/core/addr.c @@ -259,7 +259,9 @@ * If we have a source address to use look it up first and verify * that it is a local interface. */ - if (sin->sin_addr.s_addr != INADDR_ANY) { + if ((sin && sin->sin_addr.s_addr != INADDR_ANY) || + (sin6 && memcmp(&sin6->sin6_addr, &in6addr_any, + sizeof(in6addr_any)) != 0)) { ifa = ifa_ifwithaddr(src_in); if (sin) sin->sin_port = port;