From 47c524581b61f806cdcfc9c3097997ef840ed40e Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Wed, 12 Feb 2025 20:34:56 +0100 Subject: [PATCH] fix(Core/Scripts): Fix buffer-overflow errors in scripts. (#21419) --- .../BlackrockSpire/instance_blackrock_spire.cpp | 3 ++- .../BlackwingLair/instance_blackwing_lair.cpp | 5 +++-- src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp | 8 ++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index 0bf609254..05a378899 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -62,7 +62,8 @@ enum Texts MinionData const minionData[] = { - { NPC_CHROMATIC_ELITE_GUARD, DATA_GENERAL_DRAKKISATH } + { NPC_CHROMATIC_ELITE_GUARD, DATA_GENERAL_DRAKKISATH }, + { 0, 0, } }; DoorData const doorData[] = diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index e2db717c4..b84025f01 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -53,8 +53,9 @@ ObjectData const creatureData[] = ObjectData const objectData[] = { - { GO_PORTCULLIS_CHROMAGGUS, DATA_GO_CHROMAGGUS_DOOR }, - { GO_PORTCULLIS_CHROMAGGUS_EXIT, DATA_GO_CHROMAGGUS_DOOR_EXIT } + { GO_PORTCULLIS_CHROMAGGUS, DATA_GO_CHROMAGGUS_DOOR }, + { GO_PORTCULLIS_CHROMAGGUS_EXIT, DATA_GO_CHROMAGGUS_DOOR_EXIT }, + { 0, 0 } }; Position const SummonPosition[8] = diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp index 217e1915d..06a1823ed 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp @@ -80,12 +80,16 @@ float summons[3][4] = {NPC_PHANTASMAL_CLOUDSCRAPER, NPC_PHANTASMAL_CLOUDSCRAPER, NPC_PHANTASMAL_MAMMOTH, NPC_PHANTASMAL_WOLF} }; -float cords[4][4] = +float cords[5][4] = { {1177.47f, 937.722f, 527.405f, 2.21657f}, {968.66f, 1042.53f, 527.32f, 0.077f}, {1164.02f, 1170.85f, 527.321f, 3.66f}, - {1118.31f, 1080.377f, 508.361f, 4.25f} + {1118.31f, 1080.377f, 508.361f, 4.25f}, + // There are 4 phases but with the code like this: + // me->SetHomePosition(cords[phase + 1][0], cords[phase + 1][1], cords[phase + 1][2], cords[phase + 1][3]); + // lets provide fallback position. + {1177.47f, 937.722f, 527.405f, 2.21657f} }; class boss_urom : public CreatureScript