allow uneven command sizes in sc/ss command data
This commit is contained in:
@@ -369,18 +369,21 @@ static void proxy_command_get_player_card(shared_ptr<ServerState>,
|
||||
static void server_command_send_client(shared_ptr<ServerState>, shared_ptr<Lobby>,
|
||||
shared_ptr<Client> c, const std::u16string& args) {
|
||||
string data = parse_data_string(encode_sjis(args));
|
||||
data.resize((data.size() + 3) & (~3));
|
||||
c->channel.send(data);
|
||||
}
|
||||
|
||||
static void proxy_command_send_client(shared_ptr<ServerState>,
|
||||
ProxyServer::LinkedSession& session, const std::u16string& args) {
|
||||
string data = parse_data_string(encode_sjis(args));
|
||||
data.resize((data.size() + 3) & (~3));
|
||||
session.client_channel.send(data);
|
||||
}
|
||||
|
||||
static void proxy_command_send_server(shared_ptr<ServerState>,
|
||||
ProxyServer::LinkedSession& session, const std::u16string& args) {
|
||||
string data = parse_data_string(encode_sjis(args));
|
||||
data.resize((data.size() + 3) & (~3));
|
||||
session.server_channel.send(data);
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -583,12 +583,10 @@ session with ID 17205AE4, run the command `on 17205AE4 sc 1D 00 04 00`.\n\
|
||||
|
||||
} else if ((command_name == "sc") || (command_name == "ss")) {
|
||||
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");
|
||||
}
|
||||
if (data.size() == 0) {
|
||||
throw invalid_argument("no data given");
|
||||
}
|
||||
data.resize((data.size() + 3) & (~3));
|
||||
|
||||
shared_ptr<ProxyServer::LinkedSession> proxy_session;
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user