From 5ebf2bbf63e6bc7e43f63e18cc0660235efb9146 Mon Sep 17 00:00:00 2001 From: maning202007 Date: Sun, 25 Jul 2021 17:49:58 +0800 Subject: [PATCH] Fix the problems from self codecheck --- mindspore/ccsrc/debug/debug_services.cc | 4 ++++ mindspore/ccsrc/debug/debugger/debugger.cc | 5 ++++- mindspore/ccsrc/debug/debugger/grpc_client.cc | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mindspore/ccsrc/debug/debug_services.cc b/mindspore/ccsrc/debug/debug_services.cc index b955c1057d8..5ed077f4ff1 100644 --- a/mindspore/ccsrc/debug/debug_services.cc +++ b/mindspore/ccsrc/debug/debug_services.cc @@ -1126,6 +1126,10 @@ bool DebugServices::CheckOpOverflow(std::string node_name_to_find, unsigned int const size_t buf_size = 256; buffer.resize(buf_size); (void)infile.read(buffer.data(), buf_size); + if (infile.gcount() != buf_size) { + MS_LOG(ERROR) << "The file: " << file_path << "may be damaged!"; + continue; + } const uint8_t stream_id_offset = 16; const uint8_t task_id_offset = 24; // The stream_id and task_id in the dump file are 8 byte fields for extensibility purpose, but only hold 4 diff --git a/mindspore/ccsrc/debug/debugger/debugger.cc b/mindspore/ccsrc/debug/debugger/debugger.cc index d28548c5ab0..31315e603bb 100644 --- a/mindspore/ccsrc/debug/debugger/debugger.cc +++ b/mindspore/ccsrc/debug/debugger/debugger.cc @@ -866,7 +866,7 @@ std::list Debugger::LoadTensors(const ProtoVector &ten // items in ret_name will be in the same order with tensors if found debug_services_->ReadNodesTensors(name, &ret_name, &data_ptr, &data_size, &dtype, &shape); std::list tensor_list; - unsigned int result_index = 0; + size_t result_index = 0; for (auto tensor : tensors) { ssize_t size_iter = 0; @@ -897,6 +897,9 @@ std::list Debugger::LoadTensors(const ProtoVector &ten } // add tensor to result list and increment result_index to check next item in ret_name tensor_list.push_back(tensor_item); + if (size_iter > INT_MAX - g_chunk_size) { + MS_EXCEPTION(ValueError) << size_iter << " + " << g_chunk_size << " would lead to integer overflow!"; + } size_iter += g_chunk_size; } result_index++; diff --git a/mindspore/ccsrc/debug/debugger/grpc_client.cc b/mindspore/ccsrc/debug/debugger/grpc_client.cc index ec37e2ecadf..9f1607bc5e5 100644 --- a/mindspore/ccsrc/debug/debugger/grpc_client.cc +++ b/mindspore/ccsrc/debug/debugger/grpc_client.cc @@ -83,6 +83,9 @@ std::vector GrpcClient::ChunkString(std::string str, int graph_size MS_LOG(EXCEPTION) << "memcpy_s failed. errorno is: " << err; } buf.push_back(buffer); + if (size_iter > INT_MAX - l_chunk_size) { + MS_EXCEPTION(ValueError) << size_iter << " + " << l_chunk_size << "would lead to integer overflow!"; + } size_iter += l_chunk_size; } return buf;