aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLee Salzman <[email protected]>2024-07-24 01:52:32 -0400
committerLee Salzman <[email protected]>2024-07-24 01:52:32 -0400
commit1e80a78f481cb2d2e4d9a0e2718b91995f2de51c (patch)
tree6331010eb597498998cfd4e552c3d59b5b3e93dd
parenta52811ef275e25d4df29dbee68fee410249d571e (diff)
downloadenet-1e80a78f481cb2d2e4d9a0e2718b91995f2de51c.tar.gz
enet-1e80a78f481cb2d2e4d9a0e2718b91995f2de51c.zip
bound totalWaitingData decrement
-rw-r--r--peer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/peer.c b/peer.c
index 5eddf46..df8f40f 100644
--- a/peer.c
+++ b/peer.c
@@ -4,6 +4,7 @@
*/
#include <string.h>
#define ENET_BUILDING_LIB 1
+#include "enet/utility.h"
#include "enet/enet.h"
/** @defgroup peer ENet peer functions
@@ -249,7 +250,7 @@ enet_peer_receive (ENetPeer * peer, enet_uint8 * channelID)
enet_free (incomingCommand);
- peer -> totalWaitingData -= packet -> dataLength;
+ peer -> totalWaitingData -= ENET_MIN (peer -> totalWaitingData, packet -> dataLength);
return packet;
}
@@ -295,7 +296,7 @@ enet_peer_remove_incoming_commands (ENetPeer * peer, ENetList * queue, ENetListI
{
-- incomingCommand -> packet -> referenceCount;
- peer -> totalWaitingData -= incomingCommand -> packet -> dataLength;
+ peer -> totalWaitingData -= ENET_MIN (peer -> totalWaitingData, incomingCommand -> packet -> dataLength);
if (incomingCommand -> packet -> referenceCount == 0)
enet_packet_destroy (incomingCommand -> packet);