From: Victor Cebollada Date: Fri, 30 Jun 2017 15:13:27 +0000 (+0100) Subject: Fix for obj-loader X-Git-Tag: dali_1.2.47~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=a553fa0d7b974732895ef7d4f0c629f9894d115b Fix for obj-loader * Fixes an invalid read reported by valgrind. * Fix an posible overflow Change-Id: I57ccebb986d209b8d4deba4819b4b3cac8aced24 Signed-off-by: Victor Cebollada --- diff --git a/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp b/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp index 6717bab..fca57b4 100644 --- a/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp +++ b/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -364,7 +364,7 @@ bool ObjLoader::LoadObject( char* objBuffer, std::streampos fileSize ) std::string strMatActual; - std::string input = objBuffer; + std::string input( objBuffer, fileSize ); std::istringstream ss(input); ss.imbue( std::locale( "C" ) ); @@ -442,7 +442,7 @@ bool ObjLoader::LoadObject( char* objBuffer, std::streampos fileSize ) } int numIndices = 0; - while( isline >> vet[numIndices] && numIndices < MAX_POINT_INDICES ) + while( ( numIndices < MAX_POINT_INDICES ) && ( isline >> vet[numIndices] ) ) { numIndices++; } @@ -566,7 +566,7 @@ void ObjLoader::LoadMaterial( char* objBuffer, std::streampos fileSize, std::str std::string info; - std::string input = objBuffer; + std::string input( objBuffer, fileSize ); std::istringstream ss(input); ss.imbue(std::locale("C"));