From: Fred Suter Date: Fri, 28 Oct 2022 18:51:20 +0000 (-0400) Subject: check that disk has been given as argument before accessing its pimpl X-Git-Tag: v3.34~717^2^2~3 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d94f920eb99dc33e8c592e89bcbbb3a8e50fe919 check that disk has been given as argument before accessing its pimpl --- diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index 134a423e7b..6d34be90e0 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -51,7 +51,8 @@ IoPtr Io::set_source(Host* from, Disk* from_disk) kernel::actor::simcall_answered( [this, from, from_disk] { boost::static_pointer_cast(pimpl_)->set_host(from); - boost::static_pointer_cast(pimpl_)->set_disk(from_disk->get_impl()); + if (from_disk != nullptr) + boost::static_pointer_cast(pimpl_)->set_disk(from_disk->get_impl()); }); // Setting 'source' may allow to start the activity, let's try if (state_ == State::STARTING && remains_ <= 0) @@ -69,7 +70,8 @@ IoPtr Io::set_destination(Host* to, Disk* to_disk) kernel::actor::simcall_answered( [this, to, to_disk] { boost::static_pointer_cast(pimpl_)->set_dst_host(to); - boost::static_pointer_cast(pimpl_)->set_dst_disk(to_disk->get_impl()); + if (to_disk != nullptr) + boost::static_pointer_cast(pimpl_)->set_dst_disk(to_disk->get_impl()); }); // Setting 'destination' may allow to start the activity, let's try if (state_ == State::STARTING && remains_ <= 0)