From 57c1f66310baddee7fc383d446f6d4d7a945f586 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 6 Jul 2018 20:32:54 +1000 Subject: [PATCH] raw packet data contains an ipc header, not segment --- src/common/Network/GamePacketNew.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/common/Network/GamePacketNew.h b/src/common/Network/GamePacketNew.h index a5890457..7a6fe489 100644 --- a/src/common/Network/GamePacketNew.h +++ b/src/common/Network/GamePacketNew.h @@ -180,13 +180,13 @@ public: FFXIVIpcPacket< T, T1 >( const FFXIVARR_PACKET_RAW& rawPacket ) { - auto segHdrSize = sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ); - auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - segHdrSize ); + auto ipcHdrSize = sizeof( FFXIVARR_IPC_HEADER ); + auto copySize = std::min< uint32_t >( sizeof( T ), rawPacket.segHdr.size - ipcHdrSize ); - memcpy( &m_segHdr, &rawPacket.segHdr, segHdrSize ); - memcpy( &m_data, &rawPacket.data[0] + segHdrSize, copySize ); + memcpy( &m_segHdr, &rawPacket.segHdr, sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ) ); + memcpy( &m_data, &rawPacket.data[0] + ipcHdrSize, copySize ); - memset( &m_ipcHdr, 0, sizeof( FFXIVARR_IPC_HEADER ) ); + memset( &m_ipcHdr, 0, ipcHdrSize ); m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType ); }