[Bug Fix] Handle memory leaks from return value of Client::GetTraderItems() (#2266)

* Move delete of ItemInstance to avoid edge case leaking in ZoneDatabase::LoadWorldContainer()

* Delete ItemInstance after use in Client::Handle_OP_AdventureMerchantPurchase()

* Delete ItemInstance after use in NPC::GetEquipmentMaterial()

* Delete ItemInstance after use in Bot::AddBotItem()

* Delete GetItems_Struct in edge case when !TradeItemsValid in Client::Handle_OP_Trader()

* Move delete GetItems_Struct to handle edge case when Customer is not valid in Client::Trader_EndTrader()
This commit is contained in:
Quintinon
2022-07-02 20:01:42 -07:00
committed by GitHub
parent 445c94bf4a
commit 30f35a920b
5 changed files with 8 additions and 2 deletions
+1
View File
@@ -1903,6 +1903,7 @@ void NPC::PickPocket(Client* thief)
}
RemoveItem(item_inst->GetID());
thief->SendPickPocketResponse(this, 0, PickPocketItem, item_inst->GetItem());
safe_delete(item_inst);
return;
}