From af63c8783e48b6a618f7406857d6bc56d142d390 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 21 Sep 2013 19:44:15 +0200 Subject: Core/Guild: Fix withdraw money from bank overflowing int32 limit Clamp amount of money withdrawn from bank to MAX_MONEY_AMOUNT to avoid int32 overflow which would remove money from Player instead of adding it. --- src/server/game/Guilds/Guild.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/server/game/Guilds/Guild.cpp') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index cc15d15fdf9..b766897988d 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1762,6 +1762,9 @@ void Guild::HandleMemberDepositMoney(WorldSession* session, uint32 amount) bool Guild::HandleMemberWithdrawMoney(WorldSession* session, uint32 amount, bool repair) { + //clamp amount to MAX_MONEY_AMOUNT, Players can't hold more than that anyway + amount = std::min(amount, uint32(MAX_MONEY_AMOUNT)); + if (m_bankMoney < amount) // Not enough money in bank return false; -- cgit v1.2.3