diff --git a/src/CatSession.cc b/src/CatSession.cc index d05fd4bc..d00475dc 100644 --- a/src/CatSession.cc +++ b/src/CatSession.cc @@ -136,6 +136,6 @@ void CatSession::on_channel_error(short events) { void CatSession::print_prompt() { } void CatSession::execute_command(const std::string& command) { - string full_cmd = parse_data_string(command); + string full_cmd = parse_data_string(command, nullptr, ParseDataFlags::ALLOW_FILES); send_command_with_header(this->channel, full_cmd.data(), full_cmd.size()); } diff --git a/src/Main.cc b/src/Main.cc index d734c42a..d38d19e7 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -565,7 +565,7 @@ int main(int argc, char** argv) { data = read_all(stdin); } if (parse_data) { - data = parse_data_string(data); + data = parse_data_string(data, nullptr, ParseDataFlags::ALLOW_FILES); } return data; }; @@ -658,7 +658,7 @@ int main(int argc, char** argv) { crypt.reset(new PSOV3Encryption(stoul(seed, nullptr, 16))); break; case GameVersion::BB: { - seed = parse_data_string(seed); + seed = parse_data_string(seed, nullptr, ParseDataFlags::ALLOW_FILES); auto key = load_object_file( "system/blueburst/keys/" + key_file_name + ".nsk"); crypt.reset(new PSOBBEncryption(key, seed.data(), seed.size())); @@ -744,14 +744,14 @@ int main(int argc, char** argv) { vector> plaintexts; for (const auto& plaintext_ascii : find_decryption_seed_plaintexts) { string mask; - string data = parse_data_string(plaintext_ascii, &mask); + string data = parse_data_string(plaintext_ascii, &mask, ParseDataFlags::ALLOW_FILES); if (data.size() != mask.size()) { throw logic_error("plaintext and mask are not the same size"); } max_plaintext_size = max(max_plaintext_size, data.size()); plaintexts.emplace_back(move(data), move(mask)); } - string ciphertext = parse_data_string(find_decryption_seed_ciphertext); + string ciphertext = parse_data_string(find_decryption_seed_ciphertext, nullptr, ParseDataFlags::ALLOW_FILES); auto mask_match = +[](const void* a, const void* b, const void* m, size_t size) -> bool { const uint8_t* a8 = reinterpret_cast(a); diff --git a/src/ServerShell.cc b/src/ServerShell.cc index 3317e6ee..f7524a36 100644 --- a/src/ServerShell.cc +++ b/src/ServerShell.cc @@ -562,7 +562,7 @@ session with ID 17205AE4, run the command `on 17205AE4 sc 1D 00 04 00`.\n\ // PROXY COMMANDS } else if ((command_name == "sc") || (command_name == "ss")) { - string data = parse_data_string(command_args); + string data = parse_data_string(command_args, nullptr, ParseDataFlags::ALLOW_FILES); if (data.size() & 3) { throw invalid_argument("data size is not a multiple of 4"); } @@ -640,7 +640,7 @@ session with ID 17205AE4, run the command `on 17205AE4 sc 1D 00 04 00`.\n\ data.push_back('\x09'); data.push_back('E'); if (is_dchat) { - data += parse_data_string(command_args); + data += parse_data_string(command_args, nullptr, ParseDataFlags::ALLOW_FILES); } else { data += command_args; data.push_back('\0'); @@ -665,7 +665,7 @@ session with ID 17205AE4, run the command `on 17205AE4 sc 1D 00 04 00`.\n\ string data; if (command_name == "info-board-data") { - data += parse_data_string(command_args); + data += parse_data_string(command_args, nullptr, ParseDataFlags::ALLOW_FILES); } else { data += command_args; } @@ -745,7 +745,7 @@ session with ID 17205AE4, run the command `on 17205AE4 sc 1D 00 04 00`.\n\ throw runtime_error("proxy session is not game leader"); } - string data = parse_data_string(command_args); + string data = parse_data_string(command_args, nullptr, ParseDataFlags::ALLOW_FILES); if (data.size() < 2) { throw runtime_error("data too short"); }