mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 20:08:37 +00:00
[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:
@@ -2039,6 +2039,7 @@ void Client::Handle_OP_AdventureMerchantPurchase(const EQApplicationPacket *app)
|
||||
{
|
||||
PutLootInInventory(EQ::invslot::slotCursor, *inst);
|
||||
}
|
||||
safe_delete(inst);
|
||||
Save(1);
|
||||
}
|
||||
|
||||
@@ -2549,6 +2550,7 @@ void Client::Handle_OP_AltCurrencyPurchase(const EQApplicationPacket *app)
|
||||
{
|
||||
PutLootInInventory(EQ::invslot::slotCursor, *inst);
|
||||
}
|
||||
safe_delete(inst);
|
||||
|
||||
Save(1);
|
||||
}
|
||||
@@ -14463,6 +14465,7 @@ void Client::Handle_OP_Trader(const EQApplicationPacket *app)
|
||||
|
||||
if (!TradeItemsValid) {
|
||||
Trader_EndTrader();
|
||||
safe_delete(gis);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user