Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While checking the MCO implementation with valgrind we found a UAF:
I'm having trouble reproducing this with the
master
branch right now, but stepping through with gdb shows the destructor forInetMobility
being called beforeIeee80211Radio
's destructor.OMNet++ initializes the submodules of the module's super type first and
adds them to the list of the module's submodules (sim/netbuilder/cnednetworkbuilder.cc:462),
then does the same for the module's submodules (sim/netbuilder/cnednetworkbuilder.cc:466).
OMNet++ destroys submodules in the order they are listed in this list (sim/cmodule.cc:106), thus destroying the super types' submodules first.
This leads to a UAF if a submodule needs to access the mobility module in the destructor, like VanetNic's
radio
submodule.To fix this, add the
mobility
module last, leading to it getting destroyed last.