From 5de182a4caabe94566c1a274336d1b33d9054cab Mon Sep 17 00:00:00 2001 From: chxd Date: Tue, 17 Nov 2020 18:45:42 +0800 Subject: [PATCH] [IE CLDNN] program_impl::replace_all_usages causes invalid memory access. (#138) --- inference-engine/thirdparty/clDNN/src/program.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/inference-engine/thirdparty/clDNN/src/program.cpp b/inference-engine/thirdparty/clDNN/src/program.cpp index 41720ac1128..f809583cfa2 100644 --- a/inference-engine/thirdparty/clDNN/src/program.cpp +++ b/inference-engine/thirdparty/clDNN/src/program.cpp @@ -771,11 +771,12 @@ void program_impl::swap_names(program_node& node1, program_node& node2) { } void program_impl::replace_all_usages(program_node& old_node, program_node& new_node) { - auto itr = old_node.users.begin(); - auto cnt = old_node.users.size(); - while (cnt != 0) { - cnt--; + const std::list users(old_node.users); + auto itr = users.begin(); + bool end = (itr == users.end()); + while (!end) { auto& usage = (*itr++); + end = (itr == users.end()); usage->replace_dependency(old_node, new_node); } }