From 52389c2c694ef11215beb7092deefc2231a5f1ce Mon Sep 17 00:00:00 2001 From: Gent S Date: Wed, 23 Dec 2020 00:34:42 -0500 Subject: [PATCH] Make code redemption case-insensitive --- src/ChatManager.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ChatManager.cpp b/src/ChatManager.cpp index 9f53421..8f8307d 100644 --- a/src/ChatManager.cpp +++ b/src/ChatManager.cpp @@ -723,7 +723,18 @@ void redeemCommand(std::string full, std::vector& args, CNSocket* s return; } - std::string code = args[1]; + // convert string to all lowercase + const char* codeRaw = args[1].c_str(); + if (args[1].size() > 256) { // prevent overflow + ChatManager::sendServerMessage(sock, "/redeem: Code too long"); + return; + } + + char buf[256]; + for (int i = 0; i < args[1].size(); i++) + buf[i] = std::tolower(codeRaw[i]); + std::string code(buf, args[1].size()); + if (ItemManager::CodeItems.find(code) == ItemManager::CodeItems.end()) { ChatManager::sendServerMessage(sock, "/redeem: Unknown code"); return;