Merge pull request #6145 from lat9nq/nvhost_empty_memcpy

nvhost_nvdec_common: Avoid memcpy with null pointers
master
bunnei 2021-04-08 13:23:05 +07:00 committed by GitHub
commit dfac2e2d25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 6 deletions

@ -23,18 +23,23 @@ namespace {
template <typename T> template <typename T>
std::size_t SpliceVectors(const std::vector<u8>& input, std::vector<T>& dst, std::size_t count, std::size_t SpliceVectors(const std::vector<u8>& input, std::vector<T>& dst, std::size_t count,
std::size_t offset) { std::size_t offset) {
if (!dst.empty()) {
std::memcpy(dst.data(), input.data() + offset, count * sizeof(T)); std::memcpy(dst.data(), input.data() + offset, count * sizeof(T));
offset += count * sizeof(T); }
return offset; return 0;
} }
// Write vectors will write data to the output buffer // Write vectors will write data to the output buffer
template <typename T> template <typename T>
std::size_t WriteVectors(std::vector<u8>& dst, const std::vector<T>& src, std::size_t offset) { std::size_t WriteVectors(std::vector<u8>& dst, const std::vector<T>& src, std::size_t offset) {
if (src.empty()) {
return 0;
} else {
std::memcpy(dst.data() + offset, src.data(), src.size() * sizeof(T)); std::memcpy(dst.data() + offset, src.data(), src.size() * sizeof(T));
offset += src.size() * sizeof(T); offset += src.size() * sizeof(T);
return offset; return offset;
} }
}
} // Anonymous namespace } // Anonymous namespace
nvhost_nvdec_common::nvhost_nvdec_common(Core::System& system, std::shared_ptr<nvmap> nvmap_dev, nvhost_nvdec_common::nvhost_nvdec_common(Core::System& system, std::shared_ptr<nvmap> nvmap_dev,