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