Sfoglia il codice sorgente

Fixed parting settings.

Branimir Karadžić 7 anni fa
parent
commit
682d5daf1a
2 ha cambiato i file con 9 aggiunte e 8 eliminazioni
  1. 8 6
      3rdparty/ini/ini.h
  2. 1 2
      src/settings.cpp

+ 8 - 6
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;

+ 1 - 2
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);
 	}
 }