* Fix crash on interface list walk with IP-less interfaces. (Thanks Jan Kiszka)
This commit is contained in:
parent
2e502913ee
commit
713fd03ddc
@ -93,7 +93,7 @@ getifaddr(const char * ifname, char * buf, int len)
|
|||||||
}
|
}
|
||||||
for( p = ifap; p != NULL; p = p->ifa_next )
|
for( p = ifap; p != NULL; p = p->ifa_next )
|
||||||
{
|
{
|
||||||
if( p->ifa_addr->sa_family == AF_INET )
|
if( p->ifa_addr && p->ifa_addr->sa_family == AF_INET )
|
||||||
{
|
{
|
||||||
if( strcmp(p->ifa_name, ifname) != 0 )
|
if( strcmp(p->ifa_name, ifname) != 0 )
|
||||||
continue;
|
continue;
|
||||||
@ -176,7 +176,7 @@ getsysaddr(char * buf, int len)
|
|||||||
}
|
}
|
||||||
for( p = ifap; p != NULL; p = p->ifa_next )
|
for( p = ifap; p != NULL; p = p->ifa_next )
|
||||||
{
|
{
|
||||||
if (p->ifa_addr->sa_family == AF_INET)
|
if( p->ifa_addr && p->ifa_addr->sa_family == AF_INET )
|
||||||
{
|
{
|
||||||
addr_in = (struct sockaddr_in *)p->ifa_addr;
|
addr_in = (struct sockaddr_in *)p->ifa_addr;
|
||||||
a = (htonl(addr_in->sin_addr.s_addr) >> 0x18) & 0xFF;
|
a = (htonl(addr_in->sin_addr.s_addr) >> 0x18) & 0xFF;
|
||||||
@ -250,7 +250,7 @@ getsyshwaddr(char * buf, int len)
|
|||||||
}
|
}
|
||||||
for( p = ifap; p != NULL; p = p->ifa_next )
|
for( p = ifap; p != NULL; p = p->ifa_next )
|
||||||
{
|
{
|
||||||
if (p->ifa_addr->sa_family == AF_LINK)
|
if( p->ifa_addr && p->ifa_addr->sa_family == AF_LINK )
|
||||||
{
|
{
|
||||||
addr_in = (struct sockaddr_in *)p->ifa_addr;
|
addr_in = (struct sockaddr_in *)p->ifa_addr;
|
||||||
a = (htonl(addr_in->sin_addr.s_addr) >> 0x18) & 0xFF;
|
a = (htonl(addr_in->sin_addr.s_addr) >> 0x18) & 0xFF;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user