Actions
Bug #2535
closedGlobalRoutingHelper - CalculateAllPossibleRoutes SEGFAULTS - fix included
Start date:
02/18/2015
Due date:
% Done:
100%
Estimated time:
0.50 h
Description
When calling ndn::GlobalRoutingHelper::CalculateAllPossibleRoutes() I did sometimes receive SEGFAULTS or similar crashes (e.g., 300 nodes created with BRITE).
After using valgrind and gdb I identified the problem:
https://github.com/named-data/ndnSIM/blob/master/helper/ndn-global-routing-helper.cpp#L316-L320
A vector is initialized with .size() elements, though in the for loop the index "faceNumber" is used, which is incremented BEFORE it is used.
Therefore, for the last face in this list, you create an invalid write.
The fix is rather easy: do not increment faceNumber until the end of the loop. I've attached a .diff file (and the full file) to this bug report.
Files
Actions