1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-13 00:25:19 +02:00

Sanitize world directory names on create. Keep original name separate (#9432)

Blacklisted characters are replaced by '_' in the path. The display name is stored in world.mt, and duplicate file names are resolved by adding an incrementing suffix (_1, _2, _3, etc).
This commit is contained in:
Hugues Ross
2020-07-28 13:16:57 -04:00
committed by GitHub
parent f948e2c585
commit 3ce03d1c2a
6 changed files with 136 additions and 17 deletions

View File

@@ -356,8 +356,13 @@ void Server::init()
infostream << "- game: " << m_gamespec.path << std::endl;
// Create world if it doesn't exist
if (!loadGameConfAndInitWorld(m_path_world, m_gamespec))
throw ServerError("Failed to initialize world");
try {
loadGameConfAndInitWorld(m_path_world,
fs::GetFilenameFromPath(m_path_world.c_str()),
m_gamespec, false);
} catch (const BaseException &e) {
throw ServerError(std::string("Failed to initialize world: ") + e.what());
}
// Create emerge manager
m_emerge = new EmergeManager(this);