mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-06-27 04:59:32 +03:00
Fix string allocation in SquirrelVM::ReadObject
This commit is contained in:
parent
8c0b3f2f75
commit
77f645980e
@ -3803,11 +3803,26 @@ void SquirrelVM::ReadObject( SQObjectPtr &pObj, CUtlBuffer* pBuffer, ReadStateMa
|
|||||||
case OT_STRING:
|
case OT_STRING:
|
||||||
{
|
{
|
||||||
int len = pBuffer->GetInt();
|
int len = pBuffer->GetInt();
|
||||||
char *psz = (char*)stackalloc(len);
|
char *psz;
|
||||||
|
|
||||||
|
if ( len < 1024 )
|
||||||
|
{
|
||||||
|
psz = (char*)stackalloc( len );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
psz = (char*)malloc( len );
|
||||||
|
}
|
||||||
|
|
||||||
pBuffer->Get( psz, len );
|
pBuffer->Get( psz, len );
|
||||||
|
|
||||||
obj._unVal.pString = SQString::Create( _ss(vm_), psz, len );
|
obj._unVal.pString = SQString::Create( _ss(vm_), psz, len );
|
||||||
|
|
||||||
|
if ( len >= 1024 )
|
||||||
|
{
|
||||||
|
free( psz );
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OT_TABLE:
|
case OT_TABLE:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user