В Unit::CalculateAuraDuration для некоторых спеллов не корректно использование IsPositiveSpell.
Пример - баф Envenom, который считается отрицательным спеллом, так как один из эффектов спелла, кроме наложения ауры - SPELL_EFFECT_SCHOOL_DMG. В следствии чего, длительность бафа срезается талантом Master Poisoner, который имеет ауру SPELL_AURA_MOD_DURATION_OF_EFFECTS_BY_DISPEL, а баф - DISPEL_POISON.
SpellMgr.cpp:
http://paste2.org/p/1616814
SpellMgr.h:
http://paste2.org/p/1616815
Unit.cpp:
http://paste2.org/p/1616816