Fix missing checking if 3 arguments

This commit is contained in:
Benau 2019-12-28 02:12:59 +08:00
parent 3708d81815
commit cecf5cffac

View File

@ -4994,13 +4994,14 @@ void ServerLobby::handleServerCommand(Event* event,
NetworkString* chat = getNetworkString();
chat->addUInt8(LE_CHAT);
chat->setSynchronous(true);
if (argv.size() == 1 || argv.size() > 3 || argv[1].size() < 3 ||
(argv.size() == 2 &&
bool has_options = argv.size() > 1 &&
(argv[1].compare("-track") == 0 ||
argv[1].compare("-arena") == 0 ||
argv[1].compare("-kart") == 0 ||
argv[1].compare("-soccer") == 0)) ||
(argv.size() == 3 && argv[2].size() < 3))
argv[1].compare("-soccer") == 0);
if (argv.size() == 1 || argv.size() > 3 || argv[1].size() < 3 ||
(argv.size() == 2 && (argv[1].size() < 3 || has_options)) ||
(argv.size() == 3 && (!has_options || argv[2].size() < 3)))
{
chat->encodeString16(
L"Usage: /listserveraddon [option][addon string to find "