From ca989afcaf5bc81289afd4edf244d81418a90ac8 Mon Sep 17 00:00:00 2001 From: Fedja Beader Date: Sun, 30 Mar 2025 21:22:25 +0000 Subject: processTradeItemAddResponse: fix early exit before full packet is consumed. 2025-03/22/#Debug.log-[19:38:37] Wrong actual or planned inbound packet size!. Packet id: 433(0x1b1), Planned size: 7, Actual size: 4 2025-03/22/#Debug.log:[19:38:52] You picked up 1 [@@760|Overlord's Helmet@@]. **** mana/plus!146 --- src/net/tmwa/traderecv.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/net/tmwa/traderecv.cpp b/src/net/tmwa/traderecv.cpp index 101666820..1f4079e7c 100644 --- a/src/net/tmwa/traderecv.cpp +++ b/src/net/tmwa/traderecv.cpp @@ -98,6 +98,9 @@ void TradeRecv::processTradeItemAddResponse(Net::MessageIn &msg) { // Trade: New Item add response (was 0x00ea, now 01b1) const int index = msg.readInt16("index") - INVENTORY_OFFSET; + const int quantity = msg.readInt16("amount"); + const uint8_t res = msg.readUInt8("status"); + Item *item = nullptr; if (PlayerInfo::getInventory() != nullptr) item = PlayerInfo::getInventory()->getItem(index); @@ -108,9 +111,7 @@ void TradeRecv::processTradeItemAddResponse(Net::MessageIn &msg) tradeWindow->receivedOk(true); return; } - const int quantity = msg.readInt16("amount"); - const uint8_t res = msg.readUInt8("status"); switch (res) { case 0: -- cgit v1.2.3-70-g09d2