7.2.5 taint error
jwensley2 opened this issue ยท 12 comments
I've been getting this error since 7.2.5.
Message: Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOn
Time: 06/20/17 21:42:58
Count: 687
Stack: Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOnInterface\SharedXML\SharedBasicControls.lua:204: in function <Interface\SharedXML\SharedBasicControls.lua:203>
[C]: ?
[C]: in function `GetParent'
Interface\AddOns\OmniCC\settings\groups.lua:31: in function `FindGroup'
Interface\AddOns\OmniCC\settings\groups.lua:23: in function `GetGroup'
Interface\AddOns\OmniCC\settings\groups.lua:12: in function `GetGroupSettingsFor'
Interface\AddOns\OmniCC\core\cooldown.lua:95: in function `UpdateAlpha'
Interface\AddOns\OmniCC\core\cooldown.lua:12: in function <Interface\AddOns\OmniCC\core\cooldown.lua:11>
[C]: in function `SetCooldown'
Interface\FrameXML\Cooldown.lua:5: in function `CooldownFrame_Set'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:522: in function `UpdateBuffs'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:159: in function `OnUnitAuraUpdate'
...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:53: in function <...e\AddOns\Blizzard_NamePlates\Blizzard_NamePlates.lua:35>
Locals: errorMessage = "Interface\AddOns\OmniCC\settings\groups.lua:31: Attempt to access forbidden object from code tainted by an AddOn"
DisplayMessageInternal = <function> defined @Interface\SharedXML\SharedBasicControls.lua:187
MESSAGE_TYPE_ERROR = 0
Hi, what's the latest on this, can it not be fixed? With all the ground targeted heals we have to deal with, friendly nameplates are essential for healers. Thanks.
I'm getting this error too and it's giving me a lot of "you're experiencing too many errors" pop-ups. I can confirm this is happening when I have Friendly Nameplates enabled, specifically in instances. And I need to have them because I'm healing.
I'm also using Kui Nameplates but they don't work in instances anymore so I doubt that has anything to do with the error.
OmniCC was OK with this fix.
But I can't prevent errors when I'm hovering over debuff icons on friendly nameplates. "GameTooltip_SetDefaultAnchor" function itself causes taint errors. I've tried exception handling but it was no use. What I could do was only disabling debuff icons on friendly nameplates when I enter PVE instances.
local z = CreateFrame("FRAME")
z:RegisterEvent("PLAYER_ENTERING_WORLD")
z:SetScript("OnEvent", function()
local _,type=IsInInstance()
if type=="party" or type=="raid" then
SetCVar("nameplateShowDebuffsOnFriendly", 0)
else
SetCVar("nameplateShowDebuffsOnFriendly", 1)
end
z:UnregisterEvent("PLAYER_ENTERING_WORLD")
end)
Didn't test it yet, but seems the fix was released: 90af562
This happens as part of a change in 7.2.5 where dispellable debuffs are shown on friendly nameplates. In instances these frames are protected as of 7.2. Hopefully this helps in creating a work around for these errors.
This happens for me as well. In raids the error count quickly goes into the thousands.
I've noticed an unfortunate side effect: Eventually the timers on action buttons break completely and, when this happens, the related action bar buttons occasionally become completely unresponsive even when the (non displayed) cooldown is up. This is with Bartender.
A quick reload fixes this for a while but it's a really annoying bug. A quick solution would be most appreciated <3
diff --git a/OmniCC/core/cooldown.lua b/OmniCC/core/cooldown.lua
index b9ab98b..3d6e078 100644
--- a/OmniCC/core/cooldown.lua
+++ b/OmniCC/core/cooldown.lua
@@ -7,8 +7,12 @@ local Cooldown = OmniCC:New('Cooldown')
--[[ Control ]]--
+local banned = {}
function Cooldown:Start(...)
+ if banned[self] then
+ return
+ end
Cooldown.UpdateAlpha(self)
if Cooldown.CanShow(self, ...) then
@@ -105,4 +109,20 @@ function Cooldown:ForAll(func, ...)
for cooldown in pairs(OmniCC.Cache) do
func(cooldown, ...)
end
-end
\ No newline at end of file
+end
+
+local nameplateBuffFrames = {}
+function Cooldown:OnEvent(event, nameplate)
+ -- event == FORBIDDEN_NAME_PLATE_CREATED
+ nameplateBuffFrames[nameplate.UnitFrame.BuffFrame] = true
+end
+
+function Cooldown.CheckIfNameplateBuff(ty, name, parent, template)
+ if template == "NameplateBuffButtonTemplate" and nameplateBuffFrames[parent] then
+ banned[_G[name].Cooldown] = true
+ end
+end
+
+hooksecurefunc("CreateFrame", Cooldown.CheckIfNameplateBuff)
+Cooldown:SetScript("OnEvent", Cooldown.OnEvent)
+Cooldown:RegisterEvent("FORBIDDEN_NAME_PLATE_CREATED");
is a hack, and fixes the omnicc error, but won't fix the issue where it will break tooltips. That occurs because everything and their mother hooks tooltips expecting them to not be secure, but hovering over one of these debuffs has Owner be secure, and that breaks everything, often permanently somehow.
I'm getting the same "Attempt to access forbidden object from code tainted by an AddOn" error since a while ago, checked every single addon and found out that OmniCC is the problem. :/
Hope we get a fix soon.
Disabling friendly nameplates (Shift-V by default) will mitigate the issue for now.