change Preferences_Save_Safe code to not have small oob read
This commit is contained in:
parent
60652a335f
commit
6aa8e432f7
|
|
@ -176,15 +176,10 @@ bool Preferences_Save( PreferenceDictionary& preferences, const char* filename )
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Preferences_Save_Safe( PreferenceDictionary& preferences, const char* filename ){
|
bool Preferences_Save_Safe( PreferenceDictionary& preferences, const char* filename ){
|
||||||
Array<char> tmpName( filename, filename + strlen( filename ) + 1 + 3 );
|
const auto tmpName = StringOutputStream()( filename, "TMP" );
|
||||||
*( tmpName.end() - 4 ) = 'T';
|
return Preferences_Save( preferences, tmpName )
|
||||||
*( tmpName.end() - 3 ) = 'M';
|
|
||||||
*( tmpName.end() - 2 ) = 'P';
|
|
||||||
*( tmpName.end() - 1 ) = '\0';
|
|
||||||
|
|
||||||
return Preferences_Save( preferences, tmpName.data() )
|
|
||||||
&& ( !file_exists( filename ) || file_remove( filename ) )
|
&& ( !file_exists( filename ) || file_remove( filename ) )
|
||||||
&& file_move( tmpName.data(), filename );
|
&& file_move( tmpName, filename );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user