feat: v1.4.0 - Code review fixes and taint resolution

- C_Timer OnUpdate uses elapsed param
- IsAchievementCompletion checks completion boolean
- C_Map.GetPlayerMapPosition fixes
- QuestieLearner GUID function forward declarations
- Taint guards on secure hooks (InCombatLockdown + pcall)

Fixes ADDON_ACTION_BLOCKED: UseAction() errors
This commit is contained in:
Xurkon
2026-03-19 19:24:24 -05:00
parent 5cb64a4c30
commit 5d94cf8f67
14 changed files with 176 additions and 101 deletions
+4 -2
View File
@@ -361,6 +361,8 @@ _AddPlayerQuestProgress = function (quest, starterName, starterZoneName, finishe
end
hooksecurefunc("ChatFrame_OnHyperlinkShow", function(...)
-- FIX: Added InCombatLockdown guard to prevent tainting secure execution paths.
if InCombatLockdown() then return end
local _, link, _, button = ...
if (IsShiftKeyDown() and ChatEdit_GetActiveWindow() and button == "LeftButton") then
local linkType, questId, _ = string.split(":", link)
@@ -368,8 +370,8 @@ hooksecurefunc("ChatFrame_OnHyperlinkShow", function(...)
Questie:Debug(Questie.DEBUG_DEVELOP, "[QuestieTooltips:OnHyperlinkShow] Relinking Quest Link to chat:", link)
questId = tonumber(questId)
local quest = QuestieDB.GetQuest(questId)
if quest then
local success, quest = pcall(QuestieDB.GetQuest, QuestieDB, questId)
if success and quest then
local msg = ChatFrame1EditBox:GetText()
if msg then
ChatFrame1EditBox:SetText("")