mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-23 08:31:43 +02:00
fix crash under linux IPV6 in NetworkInterface::list() if currIface->ifa_addr is NULL
This commit is contained in:
@@ -903,19 +903,22 @@ NetworkInterface::NetworkInterfaceList NetworkInterface::list()
|
|||||||
IPAddress addr;
|
IPAddress addr;
|
||||||
bool haveAddr = false;
|
bool haveAddr = false;
|
||||||
int ifIndex(-1);
|
int ifIndex(-1);
|
||||||
switch (currIface->ifa_addr->sa_family)
|
if (currIface->ifa_addr)
|
||||||
{
|
{
|
||||||
case AF_INET6:
|
switch (currIface->ifa_addr->sa_family)
|
||||||
ifIndex = if_nametoindex(currIface->ifa_name);
|
{
|
||||||
addr = IPAddress(&reinterpret_cast<const struct sockaddr_in6*>(currIface->ifa_addr)->sin6_addr, sizeof(struct in6_addr), ifIndex);
|
case AF_INET6:
|
||||||
haveAddr = true;
|
ifIndex = if_nametoindex(currIface->ifa_name);
|
||||||
break;
|
addr = IPAddress(&reinterpret_cast<const struct sockaddr_in6*>(currIface->ifa_addr)->sin6_addr, sizeof(struct in6_addr), ifIndex);
|
||||||
case AF_INET:
|
haveAddr = true;
|
||||||
addr = IPAddress(*(currIface->ifa_addr));
|
break;
|
||||||
haveAddr = true;
|
case AF_INET:
|
||||||
break;
|
addr = IPAddress(*(currIface->ifa_addr));
|
||||||
default:
|
haveAddr = true;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (haveAddr)
|
if (haveAddr)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user