Browse Source

Fix segfault on unique interface name list generation (for multipath)

pull/2/head
Joseph Henry 6 years ago
parent
commit
decd5add2a
  1. 8
      osdep/Binder.hpp

8
osdep/Binder.hpp

@ -348,10 +348,11 @@ public:
}
// Generate set of unique interface names (used for formation of logical link set in multipath code)
// TODO: Could be gated not to run if multipath is not enabled.
for(std::map<InetAddress,std::string>::const_iterator ii(localIfAddrs.begin());ii!=localIfAddrs.end();++ii) {
linkIfNames.insert(ii->second);
}
for (std::set<std::string>::iterator si(linkIfNames.begin());si!=linkIfNames.end();si++) {
for (std::set<std::string>::iterator si(linkIfNames.begin());si!=linkIfNames.end();) {
bool bFoundMatch = false;
for(std::map<InetAddress,std::string>::const_iterator ii(localIfAddrs.begin());ii!=localIfAddrs.end();++ii) {
if (ii->second == *si) {
@ -360,7 +361,10 @@ public:
}
}
if (!bFoundMatch) {
linkIfNames.erase(si);
linkIfNames.erase(si++);
}
else {
++si;
}
}

Loading…
Cancel
Save