From 9f58d55a1d97d681114964fec540b7c728b17b52 Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Fri, 4 Oct 2024 11:32:42 +0200 Subject: [PATCH] fix(Core/Items): Fix exploit where multiple auras could be applied from a single enchantment. (#20128) --- src/server/game/Entities/Unit/Unit.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 08a11773f231c6..aa14b9287b481c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5075,6 +5075,14 @@ void Unit::RemoveAurasDueToItemSpell(uint32 spellId, ObjectGuid castItemGuid) else ++iter; } + + for (AuraMap::iterator iter = m_ownedAuras.begin(); iter != m_ownedAuras.end();) + { + if (iter->second->GetCastItemGUID() == castItemGuid) + RemoveOwnedAura(iter, AURA_REMOVE_BY_DEFAULT); + else + ++iter; + } } void Unit::RemoveAurasByType(AuraType auraType, ObjectGuid casterGUID, Aura* except, bool negative, bool positive)