From: Eunki, Hong Date: Tue, 7 Feb 2023 02:04:06 +0000 (+0900) Subject: Fix svace issue (uint32_t to long or std::streamsize) X-Git-Tag: dali_2.2.13~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=3da64a8d34ca7d92e78f018b583b8a15a52816bf Fix svace issue (uint32_t to long or std::streamsize) To convert unsigned value into signed value safely, we should convert as unsigned type with same size as signed type, and after done, convert into signed type. Change-Id: If6e7b613cea0b824866761f19b693fe553190b5a Signed-off-by: Eunki, Hong --- diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp index 27f0dce..42b53b1 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,11 +61,11 @@ void TestGraphicsBuffer::Upload(uint32_t offset, uint32_t size) if(size <= memory.size() && mCreated) { // Use subData to avoid re-allocation - mGl.BufferSubData(GetTarget(), offset, size, &memory[offset]); + mGl.BufferSubData(GetTarget(), static_cast(static_cast(offset)), static_cast(static_cast(size)), &memory[offset]); } else { - mGl.BufferData(GetTarget(), GLsizeiptr(size), &memory[0], GL_STATIC_DRAW); //@todo Query - do we need other usages? + mGl.BufferData(GetTarget(), static_cast(static_cast(size)), &memory[0], GL_STATIC_DRAW); //@todo Query - do we need other usages? mCreated = true; } } diff --git a/dali-scene3d/public-api/loader/gltf2-loader.cpp b/dali-scene3d/public-api/loader/gltf2-loader.cpp index be1be41..69bcd51 100644 --- a/dali-scene3d/public-api/loader/gltf2-loader.cpp +++ b/dali-scene3d/public-api/loader/gltf2-loader.cpp @@ -19,10 +19,10 @@ #include // EXTERNAL INCLUDES +#include #include #include #include -#include #include // INTERNAL INCLUDES @@ -467,7 +467,7 @@ SamplerFlags::Type ConvertSampler(const gt::Ref& sampler) TextureDefinition ConvertTextureInfo(const gt::TextureInfo& mm, ConversionContext& context, const ImageMetadata& metaData = ImageMetadata()) { TextureDefinition textureDefinition; - std::string uri = std::string(mm.mTexture->mSource->mUri); + std::string uri = std::string(mm.mTexture->mSource->mUri); if(uri.empty()) { uint32_t bufferIndex = mm.mTexture->mSource->mBufferView->mBuffer.GetIndex(); @@ -478,7 +478,7 @@ TextureDefinition ConvertTextureInfo(const gt::TextureInfo& mm, ConversionContex stream.seekg(mm.mTexture->mSource->mBufferView->mByteOffset, stream.beg); std::vector dataBuffer; dataBuffer.resize(mm.mTexture->mSource->mBufferView->mByteLength); - stream.read(reinterpret_cast(dataBuffer.data()), mm.mTexture->mSource->mBufferView->mByteLength); + stream.read(reinterpret_cast(dataBuffer.data()), static_cast(static_cast(mm.mTexture->mSource->mBufferView->mByteLength))); return TextureDefinition{std::move(dataBuffer), ConvertSampler(mm.mTexture->mSampler), metaData.mMinSize, metaData.mSamplingMode}; } return TextureDefinition(); @@ -974,7 +974,7 @@ void LoadDataFromAccessor(ConversionContext& context, uint32_t bufferIndex, Vect auto& stream = buffer.GetBufferStream(); stream.clear(); stream.seekg(offset, stream.beg); - stream.read(reinterpret_cast(dataBuffer.Begin()), size); + stream.read(reinterpret_cast(dataBuffer.Begin()), static_cast(static_cast(size))); } template @@ -1178,7 +1178,7 @@ void ProcessSkins(const gt::Document& doc, ConversionContext& context) virtual void Provide(Matrix& ibm) override { - DALI_ASSERT_ALWAYS(mStream.read(reinterpret_cast(ibm.AsFloat()), mElementSizeBytes)); + DALI_ASSERT_ALWAYS(mStream.read(reinterpret_cast(ibm.AsFloat()), static_cast(static_cast(mElementSizeBytes)))); } }; diff --git a/dali-scene3d/public-api/loader/ktx-loader.cpp b/dali-scene3d/public-api/loader/ktx-loader.cpp index 2b52734..2261ff8 100644 --- a/dali-scene3d/public-api/loader/ktx-loader.cpp +++ b/dali-scene3d/public-api/loader/ktx-loader.cpp @@ -243,7 +243,7 @@ bool LoadKtxData(const std::string& path, EnvironmentMapData& environmentMapData for(uint32_t face = 0u; face < header.numberOfFaces; ++face) { std::unique_ptr img(new uint8_t[byteSize], FreeBuffer); - if(fp.read(reinterpret_cast(img.get()), byteSize).good() == false) + if(fp.read(reinterpret_cast(img.get()), static_cast(static_cast(byteSize))).good() == false) { return false; } diff --git a/dali-scene3d/public-api/loader/mesh-definition.cpp b/dali-scene3d/public-api/loader/mesh-definition.cpp index 10adc2d..3beaf83 100644 --- a/dali-scene3d/public-api/loader/mesh-definition.cpp +++ b/dali-scene3d/public-api/loader/mesh-definition.cpp @@ -79,7 +79,7 @@ bool ReadBlob(const MeshDefinition::Blob& descriptor, std::istream& source, uint if(descriptor.IsConsecutive()) { - return !!source.read(reinterpret_cast(target), descriptor.mLength); + return !!source.read(reinterpret_cast(target), static_cast(static_cast(descriptor.mLength))); } else { @@ -541,12 +541,9 @@ void MeshDefinition::Blob::ApplyMinMax(const std::vector& min, const std: const auto numComponents = std::max(min.size(), max.size()); using ClampFn = void (*)(const float*, const float*, uint32_t, float&); - ClampFn clampFn = min.empty() ? (max.empty() ? static_cast(nullptr) : [](const float* min, const float* max, uint32_t i, float& value) - { value = std::min(max[i], value); }) - : (max.empty() ? [](const float* min, const float* max, uint32_t i, float& value) - { value = std::max(min[i], value); } - : static_cast([](const float* min, const float* max, uint32_t i, float& value) - { value = std::min(std::max(min[i], value), max[i]); })); + ClampFn clampFn = min.empty() ? (max.empty() ? static_cast(nullptr) : [](const float* min, const float* max, uint32_t i, float& value) { value = std::min(max[i], value); }) + : (max.empty() ? [](const float* min, const float* max, uint32_t i, float& value) { value = std::max(min[i], value); } + : static_cast([](const float* min, const float* max, uint32_t i, float& value) { value = std::min(std::max(min[i], value), max[i]); })); if(!clampFn) { @@ -686,7 +683,7 @@ MeshDefinition::LoadRaw(const std::string& modelsPath, BufferDefinition::Vector& raw.mIndices.resize(indexCount); // NOTE: we need space for uint32_ts initially. std::string path; - auto u8s = reinterpret_cast(raw.mIndices.data()) + indexCount; + auto u8s = reinterpret_cast(raw.mIndices.data()) + indexCount; auto& stream = GetAvailableData(fileStream, meshPath, buffers[mIndices.mBufferIdx], path); if(!ReadAccessor(mIndices, stream, u8s)) { @@ -709,7 +706,6 @@ MeshDefinition::LoadRaw(const std::string& modelsPath, BufferDefinition::Vector& "Index buffer length not a multiple of element size"); raw.mIndices.resize(mIndices.mBlob.mLength / sizeof(unsigned short)); - std::string path; auto& stream = GetAvailableData(fileStream, meshPath, buffers[mIndices.mBufferIdx], path); if(!ReadAccessor(mIndices, stream, reinterpret_cast(raw.mIndices.data())))