From cecf5cffac7dcb5c132c204cc1ceef741be9a6e3 Mon Sep 17 00:00:00 2001 From: Benau Date: Sat, 28 Dec 2019 02:12:59 +0800 Subject: [PATCH] Fix missing checking if 3 arguments --- src/network/protocols/server_lobby.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/network/protocols/server_lobby.cpp b/src/network/protocols/server_lobby.cpp index f888b935e..f25aa0a4e 100644 --- a/src/network/protocols/server_lobby.cpp +++ b/src/network/protocols/server_lobby.cpp @@ -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 "