Skip to content

Commit

Permalink
Don't crash if netlink passes an invalid net device index
Browse files Browse the repository at this point in the history
  • Loading branch information
dkulp committed Nov 30, 2019
1 parent 1665980 commit f9dbf8d
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/NetworkMonitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,25 @@ void NetworkMonitor::Init(std::map<int, std::function<bool(int)>> &callbacks) {
case RTM_DELLINK:
{
struct ifinfomsg *ifi = (ifinfomsg*)NLMSG_DATA(h);
std::string strName;
if (if_indextoname(ifi->ifi_index, name)) {
strName = name;
}
callCallbacks(h->nlmsg_type == RTM_NEWLINK ? NetEventType::NEW_LINK : NetEventType::DEL_LINK,
(ifi->ifi_flags & IFF_RUNNING) ? 1 : 0,
if_indextoname(ifi->ifi_index, name));
(ifi->ifi_flags & IFF_RUNNING) ? 1 : 0, strName);
}
break;
case RTM_NEWADDR:
case RTM_DELADDR:
{
struct ifaddrmsg *ifi = (ifaddrmsg*)NLMSG_DATA(h);
if (ifi->ifa_family == AF_INET) {
std::string strName;
if (if_indextoname(ifi->ifa_index, name)) {
strName = name;
}
callCallbacks(h->nlmsg_type == RTM_NEWADDR ? NetEventType::NEW_ADDR : NetEventType::DEL_ADDR,
h->nlmsg_type == RTM_NEWADDR ? 1 : 0,
if_indextoname(ifi->ifa_index, name));
h->nlmsg_type == RTM_NEWADDR ? 1 : 0, strName);
}
}
break;
Expand Down

0 comments on commit f9dbf8d

Please sign in to comment.