mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-16 01:01:30 +00:00
Fix for crash potential in Client::Handle_OP_ShopPlayerBuy
This commit is contained in:
parent
be459de555
commit
4c9a3b7c29
@ -1,5 +1,8 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 07/27/2015 ==
|
||||
Uleat: Reworked the QS Audit code in Handle_OP_ShopPlayerBuy (\zone\client_packet.cpp) to help eliminate potential for exception errors
|
||||
|
||||
== 07/22/2015 ==
|
||||
mackal: Corrected some hate value calcs based on updated http://www.eqemulator.org/forums/showthread.php?t=39819
|
||||
|
||||
|
||||
@ -12232,20 +12232,29 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
||||
qsaudit->items[0].item_id = item->ID;
|
||||
qsaudit->items[0].charges = mpo->quantity;
|
||||
|
||||
if (freeslotid == INVALID_INDEX) {
|
||||
const ItemInst* audit_inst = m_inv[freeslotid];
|
||||
|
||||
if (audit_inst) {
|
||||
qsaudit->items[0].aug_1 = audit_inst->GetAugmentItemID(0);
|
||||
qsaudit->items[0].aug_2 = audit_inst->GetAugmentItemID(1);
|
||||
qsaudit->items[0].aug_3 = audit_inst->GetAugmentItemID(2);
|
||||
qsaudit->items[0].aug_4 = audit_inst->GetAugmentItemID(3);
|
||||
qsaudit->items[0].aug_5 = audit_inst->GetAugmentItemID(4);
|
||||
}
|
||||
else {
|
||||
qsaudit->items[0].aug_1 = 0;
|
||||
qsaudit->items[0].aug_2 = 0;
|
||||
qsaudit->items[0].aug_3 = 0;
|
||||
qsaudit->items[0].aug_4 = 0;
|
||||
qsaudit->items[0].aug_5 = 0;
|
||||
|
||||
if (freeslotid != INVALID_INDEX) {
|
||||
Log.Out(Logs::General, Logs::Error, "Handle_OP_ShopPlayerBuy: QS Audit could not locate merchant (%u) purchased item in player (%u) inventory slot (%i)",
|
||||
qsaudit->merchant_id, qsaudit->char_id, freeslotid);
|
||||
}
|
||||
}
|
||||
else {
|
||||
qsaudit->items[0].aug_1 = m_inv[freeslotid]->GetAugmentItemID(0);
|
||||
qsaudit->items[0].aug_2 = m_inv[freeslotid]->GetAugmentItemID(1);
|
||||
qsaudit->items[0].aug_3 = m_inv[freeslotid]->GetAugmentItemID(2);
|
||||
qsaudit->items[0].aug_4 = m_inv[freeslotid]->GetAugmentItemID(3);
|
||||
qsaudit->items[0].aug_5 = m_inv[freeslotid]->GetAugmentItemID(4);
|
||||
}
|
||||
|
||||
audit_inst = nullptr;
|
||||
|
||||
qspack->Deflate();
|
||||
if (worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user