[ndnSIM] table: Workaround for cases of lookup using a detached PIT entry
Change-Id: Id93feea542e8b6309e4357a3fc6c692522d871e7
diff --git a/daemon/table/measurements.cpp b/daemon/table/measurements.cpp
index 247a584..8573d3f 100644
--- a/daemon/table/measurements.cpp
+++ b/daemon/table/measurements.cpp
@@ -81,8 +81,11 @@
Measurements::get(const pit::Entry& pitEntry)
{
shared_ptr<name_tree::Entry> nte = m_nameTree.get(pitEntry);
+ // a workaround for PIT entry deleted from PIT, but still alive as an object
+ if (nte == nullptr) {
+ return nullptr;
+ }
- BOOST_ASSERT(nte != nullptr);
return this->get(*nte);
}
diff --git a/daemon/table/name-tree.cpp b/daemon/table/name-tree.cpp
index 8e699c5..981bf43 100644
--- a/daemon/table/name-tree.cpp
+++ b/daemon/table/name-tree.cpp
@@ -324,6 +324,10 @@
NameTree::get(const pit::Entry& pitEntry)
{
shared_ptr<name_tree::Entry> nte = pitEntry.m_nameTreeEntry;
+ if (nte == nullptr) {
+ return nullptr;
+ }
+
if (nte->getPrefix().size() == pitEntry.getName().size()) {
return nte;
}