mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
[Crash] Fix out of bound arrays, other potential crashes (#3166)
This commit is contained in:
+16
-9
@@ -1802,8 +1802,9 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
|
||||
case SE_Damage_Taken_Position_Mod:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
else if (base_value < 0 && newbon->Damage_Taken_Position_Mod[limit_value] > base_value)
|
||||
newbon->Damage_Taken_Position_Mod[limit_value] = base_value;
|
||||
else if (base_value > 0 && newbon->Damage_Taken_Position_Mod[limit_value] < base_value)
|
||||
@@ -1813,8 +1814,9 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
|
||||
|
||||
case SE_Melee_Damage_Position_Mod:
|
||||
{
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
else if (base_value < 0 && newbon->Melee_Damage_Position_Mod[limit_value] > base_value)
|
||||
newbon->Melee_Damage_Position_Mod[limit_value] = base_value;
|
||||
else if (base_value > 0 && newbon->Melee_Damage_Position_Mod[limit_value] < base_value)
|
||||
@@ -1825,9 +1827,9 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
|
||||
case SE_Damage_Taken_Position_Amt:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
|
||||
}
|
||||
newbon->Damage_Taken_Position_Amt[limit_value] += base_value;
|
||||
break;
|
||||
}
|
||||
@@ -1835,8 +1837,9 @@ void Mob::ApplyAABonuses(const AA::Rank &rank, StatBonuses *newbon)
|
||||
case SE_Melee_Damage_Position_Amt:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
|
||||
newbon->Melee_Damage_Position_Amt[limit_value] += base_value;
|
||||
break;
|
||||
@@ -3884,8 +3887,9 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
|
||||
case SE_Damage_Taken_Position_Mod:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
if (AdditiveWornBonus)
|
||||
new_bonus->Damage_Taken_Position_Mod[limit_value] += effect_value;
|
||||
else if (effect_value < 0 && new_bonus->Damage_Taken_Position_Mod[limit_value] > effect_value)
|
||||
@@ -3898,8 +3902,9 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
|
||||
case SE_Melee_Damage_Position_Mod:
|
||||
{
|
||||
//Increase damage by percent from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
if (AdditiveWornBonus)
|
||||
new_bonus->Melee_Damage_Position_Mod[limit_value] += effect_value;
|
||||
else if (effect_value < 0 && new_bonus->Melee_Damage_Position_Mod[limit_value] > effect_value)
|
||||
@@ -3912,8 +3917,9 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
|
||||
case SE_Damage_Taken_Position_Amt:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
|
||||
new_bonus->Damage_Taken_Position_Amt[limit_value] += effect_value;
|
||||
break;
|
||||
@@ -3922,8 +3928,9 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses *ne
|
||||
case SE_Melee_Damage_Position_Amt:
|
||||
{
|
||||
//Mitigate if damage taken from behind base2 = 0, from front base2 = 1
|
||||
if (limit_value < 0 || limit_value > 2)
|
||||
if (limit_value < 0 || limit_value >= 2) {
|
||||
break;
|
||||
}
|
||||
|
||||
new_bonus->Melee_Damage_Position_Amt[limit_value] += effect_value;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user