From 66a1dd36ae1f8cf18b06d9009997a8d43fc395ee Mon Sep 17 00:00:00 2001 From: David Joslin Date: Wed, 8 Nov 2023 13:42:40 -0800 Subject: [PATCH] Fixed crash in ordered packets --- src/pc/network/packets/packet_ordered.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pc/network/packets/packet_ordered.c b/src/pc/network/packets/packet_ordered.c index d5f61d562..bf80cef24 100644 --- a/src/pc/network/packets/packet_ordered.c +++ b/src/pc/network/packets/packet_ordered.c @@ -121,6 +121,7 @@ static void packet_ordered_add_to_table(struct OrderedPacketTable* opt, struct P void packet_ordered_add(struct Packet* p) { u8 globalId = p->orderedFromGlobalId; + if (globalId > MAX_PLAYERS) { return; } struct OrderedPacketTable* opt = orderedPacketTable[globalId]; // try to find a ordered packet table for the packet's group @@ -161,6 +162,7 @@ void packet_ordered_add(struct Packet* p) { void packet_ordered_clear_table(u8 globalIndex, u16 groupId) { LOG_INFO("clearing out ordered packet table for %d (%d)", globalIndex, groupId); + if (globalIndex > MAX_PLAYERS) { return; } struct OrderedPacketTable* opt = orderedPacketTable[globalIndex]; struct OrderedPacketTable* optLast = opt; @@ -196,6 +198,7 @@ void packet_ordered_clear_table(u8 globalIndex, u16 groupId) { } void packet_ordered_clear(u8 globalIndex) { + if (globalIndex > MAX_PLAYERS) { return; } if (!gAllowOrderedPacketClear) { LOG_INFO("disallowed ordered packets to be cleared"); return;