From ab34bac4fc5fdf2b6235deb73ea5ad51ae5e9519 Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Tue, 16 Aug 2022 15:21:46 +0800 Subject: [PATCH] fix(opencl/extern_c_opr): fix cl_mem UAF issue 2/2 GitOrigin-RevId: ef79af3c6a7c1fb776bd351b3dd99db657fb55cb --- src/serialization/impl/extern_c_opr.cpp | 3 ++- .../include/megbrain/serialization/extern_c_opr_io.h | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/serialization/impl/extern_c_opr.cpp b/src/serialization/impl/extern_c_opr.cpp index e9b49597c..141dcdf31 100644 --- a/src/serialization/impl/extern_c_opr.cpp +++ b/src/serialization/impl/extern_c_opr.cpp @@ -381,6 +381,7 @@ void ExternCOprRunner::check_param() { void ExternCOprRunner::scn_do_execute() { SmallVector c_inp(input().size()), c_out(output().size()); + SmallVector cpu_inp, cpu_out; check_param(); bool need_copy = false; @@ -417,7 +418,7 @@ void ExternCOprRunner::scn_do_execute() { m_desc->execute(m_desc.get(), c_inp.data(), c_out.data()); for (size_t i = 0; i < output().size(); ++i) - output(i)->dev_tensor().copy_from_fixlayout(cpu_out[i]); + output(i)->dev_tensor().copy_from_fixlayout(cpu_out[i]).sync(); } else { CompNodeEnv::from_comp_node(comp_node()) .cpu_env() diff --git a/src/serialization/include/megbrain/serialization/extern_c_opr_io.h b/src/serialization/include/megbrain/serialization/extern_c_opr_io.h index f95729dd3..9d4d4e2f5 100644 --- a/src/serialization/include/megbrain/serialization/extern_c_opr_io.h +++ b/src/serialization/include/megbrain/serialization/extern_c_opr_io.h @@ -16,9 +16,6 @@ MGB_DEFINE_OPR_CLASS_WITH_EXPORT( //! store dynamic store param std::shared_ptr m_param; - //! HostTensorND holder for scn_do_execute - SmallVector cpu_inp, cpu_out; - void get_output_var_shape( const TensorShapeArray& inp_shape, TensorShapeArray& out_shape) const override; -- GitLab