Bindings.xml - taint and other issues

using any category other than ADDONS for your keybinding will cause taint

removing the category generates an empty category, which also causes taint. (if all we can use is ADDONS then why do we need to add it?)

the header is also being ignored. header="ARKINV" should resolve to a global named BINDING_HEADER_ARKINV which i have set, but its not shown in the keybindings list, neither is anyone elses, so they all blend together. did they change this or just break it?

this is the taint if you use your own category and go into the keybindings game menu.

11/6 21:48:21.244  Global variable BINDING_NAME_ARKINV_JUNK_SELL tainted by ArkInventory - Interface/AddOns/ArkInventory/Core/ArkInventory.lua:1005
11/6 21:48:21.244  Execution tainted by ArkInventory while reading BINDING_NAME_ARKINV_JUNK_SELL - Interface/SharedXML/BindingUtil.lua:141 GetBindingName()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_Keybindings.lua:311 Frame:Init()
11/6 21:48:21.244      Interface/FrameXML/SettingDefinitions/Keybindings.lua:45 Frame:Init()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollUtil.lua:439
11/6 21:48:21.244      securecallfunction()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsList.lua:52 initializer()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBoxListView.lua:283 InvokeInitializers()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:657 Frame:Update()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:159 FullUpdateInternal()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:631 Frame:FullUpdateInternal()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:113 Frame:FullUpdate()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:605
11/6 21:48:21.244      securecallfunction()
11/6 21:48:21.244      Interface/SharedXML/CallbackRegistry.lua:143
11/6 21:48:21.244      secureexecuterange()
11/6 21:48:21.244      Interface/SharedXML/CallbackRegistry.lua:146 TriggerEvent()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBoxListView.lua:225 SignalDataChangeEvent()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBoxListView.lua:205 SetDataProvider()
11/6 21:48:21.244      Interface/SharedXML/Scroll/ScrollBox.lua:589
11/6 21:48:21.244      securecallfunction()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsList.lua:101 Frame:Display()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:782 SettingsPanel:DisplayLayout()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:758 SettingsPanel:DisplayCategory()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:725
11/6 21:48:21.244      securecallfunction()
11/6 21:48:21.244      Interface/SharedXML/CallbackRegistry.lua:143
11/6 21:48:21.244      secureexecuterange()
11/6 21:48:21.244      Interface/SharedXML/CallbackRegistry.lua:146 Frame:TriggerEvent()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_CategoryList.lua:136
11/6 21:48:21.244  Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:524
11/6 21:48:21.244  An action was blocked because of taint from ArkInventory - SpellStopCasting()
11/6 21:48:21.244      Interface/FrameXML/UIParent.lua:4006 ToggleGameMenu()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:292 SettingsPanel:TransitionBackOpeningPanel()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:281 SettingsPanel:ExitWithCommit()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:257 SettingsPanel:Close()
11/6 21:48:21.244      Interface/SharedXML/Settings/Blizzard_SettingsPanel.lua:44
4 Likes

Any new info on? I’m having the same issue with my addon “ActionbarPlus”

out of curiousity, is this what causes random addons to have the “this action blocked” with the disable/ignore option along with all my keybinds not working? I tend to get this a lot at the beginning of m+ runs, but multiple different addons can cause it (angry keystones, bank items, world quest lists, etc.). Or is that something different? There’s nothing more exciting than jumping down to that first Gambit pull and you can’t press any of your keybinds unless you reload.

Its probably one of a bunch of causes, yeah.

if its your addon then you can just update the category to ADDONS and it will stop tainting.

you could probably do that even if it isnt your mod, but it will get overwritten next time you update it.

1 Like

where do we look to change the category (like which type of code? event hooks?)

Thank you so much for this info, I was just experiencing this trying to troubleshoot. Also, how did you get that logging on the tainted execution? I enabled console but didn’t see it, is there some setting you need to enable to see the logging of the tainted execution?

in bindings.xml, you want it to have category="ADDONS" for each entry so if theres another value in there then replace it with ADDONS so it ends up under the AddOns category in the keybindings and it should stop tainting.

if they use lua instead of the bindings file then it should be similar but the code could be anywhere in their files.

xml example

<Bindings>
  <Binding name="ARKINV_CONFIG" category="ADDONS" header="ARKINV">
    ArkInventory.Frame_Config_Toggle( )
  </Binding>
  <Binding name="ARKINV_TOGGLE_BAG" category="ADDONS">
    ArkInventory.Frame_Main_Toggle( ArkInventory.Const.Location.Bag )
  </Binding>
</Bindings>

/console taintLog 1
/reload
do something to get it to block
copy the Logs\taint.log file out to somewhere else (or it will get overridden)
/console taintLog 0
/reload

taintLog is case sensitive, i think
you can also set it to level 2 if level 1 doesnt show you enough

3 Likes

just an update. you can get it to work without any taint on the proviso that the text in the category value does not resolve to a non blizzard global, if it does resolve then it needs to be a blizzard global, like ADDONS.

eg if i have the category set to "ArkInventory" then it will work only if _G["ArkInventory"] returns nil (or was a blizzard global) - which in my case it wont as thats the name of the table my mod lives in, which is unsecure, and will taint.

the upside is that if i just add a space to the end, eg "ArkInventory ", then as _G["ArkInventory "] returns nil it will now work (and no one is going to notice the space on the end), and it wont taint as its just a string value.

so long as youre willing to use plain text (not anything calculated or referenced) as the category value, with a space on the end if needed, then you can have your own section in the keybindings again.

and the headers are still not working…

1 Like