Sanitize load_amxscript() and add load_amxscript_ex/MF_LoadAmxScriptEx() requiring error max length (#530)
* Add a saner version of load_amxscript and use SafeStrcpy/Sprintf * Reflect the change in core * Add LoadAmxScriptEx API function * Reflect the change in CSX * Reflect the change in DodX * Reflect the change in TFCX * Reflect the change in TSX * Add few comments
This commit is contained in:
@ -127,9 +127,9 @@ void RankSystem::clear(){
|
||||
}
|
||||
}
|
||||
|
||||
bool RankSystem::loadCalc(const char* filename, char* error)
|
||||
bool RankSystem::loadCalc(const char* filename, char* error, size_t maxLength)
|
||||
{
|
||||
if ((MF_LoadAmxScript(&calc.amx,&calc.code,filename,error,0)!=AMX_ERR_NONE)||
|
||||
if ((MF_LoadAmxScriptEx(&calc.amx,&calc.code,filename, error, maxLength, 0)!=AMX_ERR_NONE)||
|
||||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr1, &calc.physAddr1)!=AMX_ERR_NONE)||
|
||||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr2, &calc.physAddr2)!=AMX_ERR_NONE)||
|
||||
(MF_AmxFindPublic(&calc.amx,"get_score",&calc.func)!=AMX_ERR_NONE)){
|
||||
|
@ -102,7 +102,7 @@ public:
|
||||
void saveRank( const char* filename );
|
||||
void loadRank( const char* filename );
|
||||
RankStats* findEntryInRank(const char* unique, const char* name , bool isip = false);
|
||||
bool loadCalc(const char* filename, char* error);
|
||||
bool loadCalc(const char* filename, char* error, size_t maxLength);
|
||||
inline int getRankNum( ) const { return rankNum; }
|
||||
void clear();
|
||||
void unloadCalc();
|
||||
|
@ -330,7 +330,7 @@ void OnAmxxAttach() {
|
||||
if ( path && *path )
|
||||
{
|
||||
char error[128];
|
||||
g_rank.loadCalc( MF_BuildPathname("%s",path) , error );
|
||||
g_rank.loadCalc( MF_BuildPathname("%s",path), error, sizeof(error));
|
||||
}
|
||||
if ( !g_rank.begin() )
|
||||
{
|
||||
|
Reference in New Issue
Block a user