A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix use-after-free with VirtualMachine::destroy().
[simgrid.git]
/
src
/
plugins
/
vm
/
s4u_VirtualMachine.cpp
diff --git
a/src/plugins/vm/s4u_VirtualMachine.cpp
b/src/plugins/vm/s4u_VirtualMachine.cpp
index
ff29321
..
f3c7658
100644
(file)
--- a/
src/plugins/vm/s4u_VirtualMachine.cpp
+++ b/
src/plugins/vm/s4u_VirtualMachine.cpp
@@
-129,8
+129,11
@@
void VirtualMachine::destroy()
shutdown();
/* Then, destroy the VM object */
shutdown();
/* Then, destroy the VM object */
- get_impl()->destroy();
- delete this;
+ kernel::actor::simcall([this]() {
+ auto impl = get_impl();
+ delete this; // delete iface first
+ impl->destroy();
+ });
}
simgrid::s4u::Host* VirtualMachine::get_pm() const
}
simgrid::s4u::Host* VirtualMachine::get_pm() const