mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
IOS HLE: More robust escaping of NAND paths
Prevents path traversal without needing an absolute path function, and also improves accuracy (character sequences like ../ appear to have no special meaning in IOS). This removes the creation and usage of /sys/replace, because the new escapes are too complicated to all be representable in its format and because no other NAND handling software seems to use /sys/replace.
This commit is contained in:
@ -15,9 +15,6 @@ static const std::string TITLEID_SYSMENU_STRING = "0000000100000002";
|
||||
|
||||
namespace Common
|
||||
{
|
||||
typedef std::pair<char, std::string> replace_t;
|
||||
typedef std::vector<replace_t> replace_v;
|
||||
|
||||
void InitializeWiiRoot(bool use_temporary);
|
||||
void ShutdownWiiRoot();
|
||||
|
||||
@ -33,5 +30,11 @@ std::string GetTitleDataPath(u64 _titleID, FromWhichRoot from);
|
||||
std::string GetTitleContentPath(u64 _titleID, FromWhichRoot from);
|
||||
bool CheckTitleTMD(u64 _titleID, FromWhichRoot from);
|
||||
bool CheckTitleTIK(u64 _titleID, FromWhichRoot from);
|
||||
void ReadReplacements(replace_v& replacements);
|
||||
|
||||
// Escapes characters that are invalid or have special meanings in the host file system
|
||||
std::string EscapeFileName(const std::string& filename);
|
||||
// Escapes characters that are invalid or have special meanings in the host file system
|
||||
std::string EscapePath(const std::string& path);
|
||||
// Reverses escaping done by EscapeFileName
|
||||
std::string UnescapeFileName(const std::string& filename);
|
||||
}
|
||||
|
Reference in New Issue
Block a user