From fa6608d20e53a03ae84210daf839cf2ad8f8c316 Mon Sep 17 00:00:00 2001 From: chmielew Date: Mon, 2 Mar 2020 13:15:50 +0100 Subject: [PATCH] ocloc fixes Change-Id: I3b60b7fafa8ae17fbf73680892838b1cabd24327 --- .../source/decoder/binary_encoder.cpp | 4 ++++ .../offline_compiler/source/ocloc_arg_helper.cpp | 16 +++++++++------- .../offline_compiler/source/ocloc_arg_helper.h | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/shared/offline_compiler/source/decoder/binary_encoder.cpp b/shared/offline_compiler/source/decoder/binary_encoder.cpp index 8719084992..71428bd14c 100644 --- a/shared/offline_compiler/source/decoder/binary_encoder.cpp +++ b/shared/offline_compiler/source/decoder/binary_encoder.cpp @@ -55,6 +55,10 @@ void BinaryEncoder::calculatePatchListSizes(std::vector &ptmFile) { } bool BinaryEncoder::copyBinaryToBinary(const std::string &srcFileName, std::ostream &outBinary, uint32_t *binaryLength) { + if (argHelper->fileExists(srcFileName)) { + return false; + } + auto binary = argHelper->readBinaryFile(srcFileName); auto length = binary.size(); outBinary.write(binary.data(), length); diff --git a/shared/offline_compiler/source/ocloc_arg_helper.cpp b/shared/offline_compiler/source/ocloc_arg_helper.cpp index ef94decdbf..262d106051 100644 --- a/shared/offline_compiler/source/ocloc_arg_helper.cpp +++ b/shared/offline_compiler/source/ocloc_arg_helper.cpp @@ -47,10 +47,10 @@ OclocArgHelper::OclocArgHelper(const uint32_t numSources, const uint8_t **dataSo : numOutputs(numOutputs), nameOutputs(nameOutputs), dataOutputs(dataOutputs), lenOutputs(lenOutputs), hasOutput(numOutputs != nullptr) { for (uint32_t i = 0; i < numSources; ++i) { - inputs.push_back(Source(dataSources[i], lenSources[i], nameSources[i])); + inputs.push_back(Source(dataSources[i], static_cast(lenSources[i]), nameSources[i])); } for (uint32_t i = 0; i < numInputHeaders; ++i) { - headers.push_back(Source(dataInputHeaders[i], lenInputHeaders[i], nameInputHeaders[i])); + headers.push_back(Source(dataInputHeaders[i], static_cast(lenInputHeaders[i]), nameInputHeaders[i])); } } @@ -70,8 +70,9 @@ void OclocArgHelper::moveOutputs() { *dataOutputs = new uint8_t *[outputs.size()]; *lenOutputs = new uint64_t[outputs.size()]; for (size_t i = 0; i < outputs.size(); ++i) { - (*nameOutputs)[i] = new char[outputs[i]->name.length() + 1]; - strncpy((*nameOutputs)[i], outputs[i]->name.c_str(), outputs[i]->name.length() + 1); + size_t size = outputs[i]->name.length() + 1; + (*nameOutputs)[i] = new char[size]; + strncpy_s((*nameOutputs)[i], size, outputs[i]->name.c_str(), outputs[i]->name.length() + 1); (*dataOutputs)[i] = outputs[i]->data; (*lenOutputs)[i] = outputs[i]->size; } @@ -121,9 +122,10 @@ std::vector OclocArgHelper::readBinaryFile(const std::string &filename) { std::unique_ptr OclocArgHelper::loadDataFromFile(const std::string &filename, size_t &retSize) { if (Source *s = findSourceFile(filename)) { - std::unique_ptr ret(new char[static_cast(s->length)]()); - memcpy(ret.get(), s->data, static_cast(s->length)); - retSize = static_cast(s->length); + auto size = s->length; + std::unique_ptr ret(new char[size]()); + memcpy_s(ret.get(), size, s->data, s->length); + retSize = s->length; return ret; } else { return ::loadDataFromFile(filename.c_str(), retSize); diff --git a/shared/offline_compiler/source/ocloc_arg_helper.h b/shared/offline_compiler/source/ocloc_arg_helper.h index a4715a8480..e941c64023 100644 --- a/shared/offline_compiler/source/ocloc_arg_helper.h +++ b/shared/offline_compiler/source/ocloc_arg_helper.h @@ -15,9 +15,9 @@ struct Source { const uint8_t *data; - const uint64_t length; + const size_t length; const char *name; - Source(const uint8_t *data, const uint64_t length, const char *name) + Source(const uint8_t *data, const size_t length, const char *name) : data(data), length(length), name(name){}; void toVectorOfStrings(std::vector &lines, bool replaceTabs = false); inline std::vector toBinaryVector() {