From 49dfac1c80f046e4d063daa6c8f29770262c7458 Mon Sep 17 00:00:00 2001 From: lili-ffxi <40600148+lili-ffxi@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:18:09 +0100 Subject: [PATCH] Fix potential integer overflow when displaying very large amounts of damage Scoreboard would overflow and display a negative number once the total amount of damage dealt was over 2^32. Changing `%d` for `%.0f` where appropriate to avoid this. --- addons/scoreboard/display.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/scoreboard/display.lua b/addons/scoreboard/display.lua index b2582d68f..865b4c817 100644 --- a/addons/scoreboard/display.lua +++ b/addons/scoreboard/display.lua @@ -201,7 +201,7 @@ function Display:update() else percent = '(0%)' end - display_table:append('%-25s%7d%8s %7s':format(v[1], v[2], percent, dps)) + display_table:append('%-25s%7.0f%8s %7s':format(v[1], v[2], percent, dps)) end alli_damage = alli_damage + v[2] -- gather this even for players not displayed player_lines = player_lines + 1 @@ -283,7 +283,7 @@ function Display:report_summary (...) local elements = T{} for k, v in pairs(damage_table) do - elements:append('%s %d(%.1f%%)':format(v[1], v[2], 100 * v[2]/total_damage)) + elements:append('%s %.0f(%.1f%%)':format(v[1], v[2], 100 * v[2]/total_damage)) end -- Send the report to the specified chatmode