From 682d5daf1a737ab550a1c1b1b3011bc34f057de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 11 Jun 2018 14:41:33 -0700 Subject: [PATCH] Fixed parting settings. --- 3rdparty/ini/ini.h | 14 ++++++++------ src/settings.cpp | 3 +-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/3rdparty/ini/ini.h b/3rdparty/ini/ini.h index 394c196..6adb296 100644 --- a/3rdparty/ini/ini.h +++ b/3rdparty/ini/ini.h @@ -496,7 +496,7 @@ ini_t* ini_create( void* memctx ) } -ini_t* ini_load( char const* data, void* memctx ) +ini_t* ini_load( char const* data, unsigned int len, void* memctx ) { ini_t* ini; char const* ptr; @@ -504,17 +504,19 @@ ini_t* ini_load( char const* data, void* memctx ) char const* start; char const* start2; int l; + char const* end; ini = ini_create( memctx ); ptr = data; + end = ptr + len; if( ptr ) { s = 0; - while( *ptr ) + while( ptr < end && *ptr ) { /* trim leading whitespace */ - while( *ptr && *ptr <=' ' ) + while( ptr < end && *ptr && *ptr <=' ' ) ++ptr; /* done? */ @@ -544,17 +546,17 @@ ini_t* ini_load( char const* data, void* memctx ) else { start = ptr; - while( *ptr && *ptr !='=' && *ptr != '\n' ) + while( ptr < end && *ptr && *ptr !='=' && *ptr != '\n' ) ++ptr; if( *ptr == '=' ) { l = (int)( ptr - start); ++ptr; - while( *ptr && *ptr <= ' ' && *ptr != '\n' ) + while( ptr < end && *ptr && *ptr <= ' ' && *ptr != '\n' ) ptr++; start2 = ptr; - while( *ptr && *ptr != '\n' ) + while( ptr < end && *ptr && *ptr != '\n' ) ++ptr; while( *(--ptr) <= ' ' ) (void)ptr; diff --git a/src/settings.cpp b/src/settings.cpp index 71f86a3..c8b27fb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -59,8 +59,7 @@ void Settings::load(const void* _data, uint32_t _len) } else { - BX_UNUSED(_len); - m_ini = ini_load( (const char*)_data, m_allocator); + m_ini = ini_load( (const char*)_data, _len, m_allocator); } }