fix(Core): potential crashes/bugs reported by static analysis #2 (#2622)

This commit is contained in:
Kaev
2020-02-03 07:52:27 +01:00
committed by GitHub
parent 8cfdfd0af0
commit 2fa9f5c249
30 changed files with 148 additions and 229 deletions

View File

@@ -257,6 +257,9 @@ public:
if (!handler->extractPlayerTarget((char*)args, &target))
return false;
if (!target)
return false;
LocaleConstant loc = handler->GetSessionDbcLocale();
char const* targetName = target->GetName().c_str();
char const* knownStr = handler->GetAcoreString(LANG_KNOWN);

View File

@@ -298,24 +298,14 @@ public:
if (!pfactionid)
{
if (target)
{
uint32 factionid = target->getFaction();
uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
}
uint32 factionid = target->getFaction();
uint32 flag = target->GetUInt32Value(UNIT_FIELD_FLAGS);
uint32 npcflag = target->GetUInt32Value(UNIT_NPC_FLAGS);
uint32 dyflag = target->GetUInt32Value(UNIT_DYNAMIC_FLAGS);
handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUIDLow(), factionid, flag, npcflag, dyflag);
return true;
}
if (!target)
{
handler->SendSysMessage(LANG_NO_CHAR_SELECTED);
handler->SetSentErrorMessage(true);
return false;
}
uint32 factionid = atoi(pfactionid);
uint32 flag;

View File

@@ -295,7 +295,7 @@ public:
return false;
}
uint32 vendor_entry = vendor ? vendor->GetEntry() : 0;
uint32 vendor_entry = vendor->GetEntry();
if (!sObjectMgr->IsVendorItemValid(vendor_entry, itemId, maxcount, incrtime, extendedcost, handler->GetSession()->GetPlayer()))
{

View File

@@ -411,7 +411,7 @@ public:
ElementalOne->SetInCombatWithZone();
ElementalOne->CombatStart(target);
ElementalOne->setFaction(me->getFaction());
ElementalTwo->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalOne->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalOne->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true);
ElementalOne->SetModifierValue(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, 0);
}
@@ -441,7 +441,7 @@ public:
ElementalThree->SetInCombatWithZone();
ElementalThree->CombatStart(target);
ElementalThree->setFaction(me->getFaction());
ElementalTwo->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalThree->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalThree->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true);
ElementalThree->SetModifierValue(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, 0);
}
@@ -456,7 +456,7 @@ public:
ElementalFour->SetInCombatWithZone();
ElementalFour->CombatStart(target);
ElementalFour->setFaction(me->getFaction());
ElementalTwo->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalFour->SetUnitMovementFlags(MOVEMENTFLAG_ROOT);
ElementalFour->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true);
ElementalFour->SetModifierValue(UNIT_MOD_RESISTANCE_FROST, BASE_VALUE, 0);
}

View File

@@ -168,7 +168,7 @@ public:
break;
case GO_MASSIVE_DOOR:
m_uiMassiveDoor = go->GetGUID();
if (GetBossState(DATA_ARAN) == !IN_PROGRESS)
if (GetBossState(DATA_ARAN) != IN_PROGRESS)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
@@ -181,7 +181,7 @@ public:
break;
case GO_NETHERSPACE_DOOR:
m_uiNetherspaceDoor = go->GetGUID();
if (GetBossState(DATA_PRINCE) == !IN_PROGRESS)
if (GetBossState(DATA_PRINCE) != IN_PROGRESS)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
else
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);

View File

@@ -1261,7 +1261,8 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
}
else if (data == COS_PROGRESS_KILLED_SALRAMM)
{
pInstance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 10);
if (pInstance)
pInstance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 10);
DoAction(ACTION_KILLED_SALRAMM);
}
break;

View File

@@ -2015,7 +2015,7 @@ class at_hor_battered_hilt_throw : public AreaTriggerScript
if (InstanceScript* instance = player->GetInstanceScript())
{
uint32 bhd = instance->GetData(DATA_BATTERED_HILT);
if (bhd == BHSF_NONE || bhd != BHSF_STARTED)
if (bhd != BHSF_STARTED)
return true;
player->CastSpell(player, 70698, true);
player->DestroyItemCount(49766, 1, true);

View File

@@ -129,6 +129,7 @@ public:
n2->GetMotionMaster()->MovePoint(1, NecrolytePos2);
n2->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
}
// TODO This spell check is invalid
if (SPELL_NECROLYTE_CHANNELING)
{
n1->RemoveAura(SPELL_NECROLYTE_CHANNELING);
@@ -398,6 +399,8 @@ public:
(me->GetPositionX() > 490.0f && me->GetPositionX() < 504.0f && me->GetPositionY() > 240.0f && me->GetPositionY() < 254.0f))
{
isInvincible = true;
// TODO This spell check is invalid
if (SPELL_NECROLYTE_CHANNELING)
me->CastSpell(me, SPELL_NECROLYTE_CHANNELING, false);
@@ -417,6 +420,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
// TODO This spell check is invalid
if (SPELL_NECROLYTE_CHANNELING)
me->RemoveAura(SPELL_NECROLYTE_CHANNELING);
events.Reset();