From: <ave...@us...> - 2007-04-28 14:24:01
|
Revision: 4618 http://gemrb.svn.sourceforge.net/gemrb/?rev=4618&view=rev Author: avenger_teambg Date: 2007-04-28 07:24:01 -0700 (Sat, 28 Apr 2007) Log Message: ----------- fixed some buffer overflow/uninitialized memory Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Map.cpp gemrb/trunk/gemrb/plugins/GAMImporter/GAMImp.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Map.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Map.cpp 2007-04-28 13:42:42 UTC (rev 4617) +++ gemrb/trunk/gemrb/plugins/Core/Map.cpp 2007-04-28 14:24:01 UTC (rev 4618) @@ -183,20 +183,12 @@ } if (j>0) { SpawnGroup *creatures = new SpawnGroup(j); -/* - ieResRef *creatures = (ieResRef *) malloc( sizeof(ieResRef)*(j+1) ); - //count of creatures - *(ieDword *) creatures = (ieDword) j; -*/ creatures->Level = (ieDword) atoi( tab->QueryField(i,0) ); //difficulty -/* - *(((ieDword *) creatures)+1) = (ieDword) atoi( tab->QueryField(i,0) ); -*/ for (;j;j--) { - strnlwrcpy( creatures->ResRefs[j-1], tab->QueryField(j,i), sizeof( ieResRef ) ); + strnlwrcpy( creatures->ResRefs[j-1], tab->QueryField(j,i), 8 ); } - strnlwrcpy( GroupName, tab->GetColumnName( i ), 8); + strnlwrcpy( GroupName, tab->GetColumnName( i ), 8 ); Spawns.SetAt( GroupName, (void*) creatures ); } } Modified: gemrb/trunk/gemrb/plugins/GAMImporter/GAMImp.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/GAMImporter/GAMImp.cpp 2007-04-28 13:42:42 UTC (rev 4617) +++ gemrb/trunk/gemrb/plugins/GAMImporter/GAMImp.cpp 2007-04-28 14:24:01 UTC (rev 4618) @@ -146,6 +146,7 @@ MazeOffset = 0; str->ReadDword( &newGame->Reputation ); str->ReadResRef( newGame->CurrentArea ); // FIXME: see above + memcpy(newGame->AnotherArea, newGame->CurrentArea, sizeof(ieResRef) ); str->ReadDword( &newGame->ControlStatus ); str->ReadDword( &KillVarsCount ); //this is still unknown str->ReadDword( &FamiliarsOffset ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |