[4.0] SVACE Error fix TextureManager Thread bounds 32/163632/3
authorAgnelo Vaz <agnelo.vaz@samsung.com>
Tue, 12 Dec 2017 10:19:46 +0000 (10:19 +0000)
committerAgnelo Vaz <agnelo.vaz@samsung.com>
Tue, 12 Dec 2017 17:44:27 +0000 (17:44 +0000)
Should be able to resolve SVACE error by asserting on the maximum number allowed.

Preventing TextureManager sign-compare Error with strtoul (old arch)

Change-Id: I081635e8f1f1a69e7426041344440a53c5b80121

dali-toolkit/internal/visuals/texture-manager-impl.cpp

index b2e0d03..11d3b0f 100644 (file)
@@ -47,8 +47,10 @@ size_t GetNumberOfThreads(const char* environmentVariable, size_t defaultValue)
 {
   using Dali::EnvironmentVariable::GetEnvironmentVariable;
   auto numberString = GetEnvironmentVariable(environmentVariable);
-  auto numberOfThreads = numberString ? std::strtol(numberString, nullptr, 10) : 0;
-  return (numberOfThreads > 0) ? numberOfThreads : defaultValue;
+  auto numberOfThreads = numberString ? std::strtoul(numberString, nullptr, 10) : 0;
+  constexpr auto MAX_NUMBER_OF_THREADS = 100u;
+  DALI_ASSERT_DEBUG( numberOfThreads < MAX_NUMBER_OF_THREADS );
+  return ( numberOfThreads > 0 && numberOfThreads < MAX_NUMBER_OF_THREADS ) ? numberOfThreads : defaultValue;
 }
 
 size_t GetNumberOfLocalLoaderThreads()