add ALLOW_FILES flag to parse_data_string calls where needed

This commit is contained in:
Martin Michelsen
2023-02-27 22:37:46 -08:00
parent 215f5deff6
commit f1a64e6dbf
3 changed files with 9 additions and 9 deletions
+1 -1
View File
@@ -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());
}
+4 -4
View File
@@ -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<PSOBBEncryption::KeyFile>(
"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<pair<string, string>> 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<size_t>(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<const uint8_t*>(a);
+4 -4
View File
@@ -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");
}