Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix use-after-free with VirtualMachine::destroy().
[simgrid.git] / src / plugins / vm / s4u_VirtualMachine.cpp
index ff29321..f3c7658 100644 (file)
@@ -129,8 +129,11 @@ void VirtualMachine::destroy()
   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