InterfaceOptions_AddCategory causes UI taint

Bug Report
This is a repost of InterfaceOptions_AddCategory() causes massive tainting from the EU forums by Archarodim, the current maintainer of Decursive: http://eu.battle.net/wow/en/forum/topic/5300140681

Using InterfaceOptions_AddCategory() currently causes massive tainting (true in WoW live 5.0.4 and beta 5.0.5) when the interface option panel is displayed.

Here is a small extract of the taintlog 2 it generates when opening the Blizzard's interface option panel:

Global variable UIDROPDOWNMENU_MENU_LEVEL tainted by BugSack - Interface\FrameXML\UIDropDownMenu.lua:38
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\UIDropDownMenu.lua:64 UIDropDownMenu_Initialize()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsPanels.lua:167 InterfaceOptionsControlsPanelAutoLootKeyDropDown:RefreshValue()
9/9 01:53:48.279 Interface\FrameXML\OptionsPanelTemplates.lua:258
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsPanels.lua:111
9/9 01:53:48.279 pcall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:221
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:298 InterfaceOptionsOptionsFrame_RefreshCategories()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:393
9/9 01:53:48.279 InterfaceOptionsFrame:Show()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1738 <unnamed>:SetUIPanel()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1543 <unnamed>:ShowUIPanel()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1469
9/9 01:53:48.279 <unnamed>:SetAttribute()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:2179 ShowUIPanel()
9/9 01:53:48.279 GameMenuButtonUIOptions:OnClick()
9/9 01:53:48.279 Execution tainted by BugSack while reading UIDROPDOWNMENU_MENU_LEVEL - Interface\FrameXML\UIDropDownMenu.lua:48
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\UIDropDownMenu.lua:64 UIDropDownMenu_Initialize()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsPanels.lua:167 InterfaceOptionsControlsPanelAutoLootKeyDropDown:RefreshValue()
9/9 01:53:48.279 Interface\FrameXML\OptionsPanelTemplates.lua:258
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsPanels.lua:111
9/9 01:53:48.279 pcall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:221
9/9 01:53:48.279 securecall()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:298 InterfaceOptionsOptionsFrame_RefreshCategories()
9/9 01:53:48.279 Interface\FrameXML\InterfaceOptionsFrame.lua:393
9/9 01:53:48.279 InterfaceOptionsFrame:Show()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1738 <unnamed>:SetUIPanel()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1543 <unnamed>:ShowUIPanel()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:1469
9/9 01:53:48.279 <unnamed>:SetAttribute()
9/9 01:53:48.279 Interface\FrameXML\UIParent.lua:2179 ShowUIPanel()
9/9 01:53:48.279 GameMenuButtonUIOptions:OnClick()
....

the taintlog is 11000 lines long if the game is stopped (via alt+f4) right after opening the interface panel.

This is a serious problem since many add-ons add their options to the interface option panel.
Has anyone from Blizz addressed this? Its been an issue since 5.04 patch
Also reporting in support of Decursive and other mods.
This is now almost the middle of November, and still no fix or comment? The tainting still happens, still blames the incorrect code. And not just Decursive, as mentioned. It affects everything that uses the Interface Options Panel.
As a addon developer, it's really frustrating to get blamed for taint when using a API Blizzard has suggested we use.

Were it some unsupported only-intended-for-internal-code options feature, it would be understandable, but this is pretty silly.
I should point out that when I say "everything", I am including Blizzard's own Interface Panel code in with third party addons. Everything is tainted.

Join the Conversation

Return to Forum