]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
fix an overflow without allowoverflow set error in EntityFrame5 sending of stats
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 May 2005 07:57:04 +0000 (07:57 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 May 2005 07:57:04 +0000 (07:57 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@5336 d7cf8633-e32d-0410-b094-e92efae38249

protocol.c

index 0c047113786c64c175eb50c2d7fcae42ebf1128b..8367824d98eb3514d0f75060413b6c5a6a715731 100644 (file)
@@ -2103,6 +2103,11 @@ void EntityFrame5_WriteFrame(sizebuf_t *msg, entityframe5_database_t *d, int num
                }
        }
 
+       // if there isn't at least enough room for an empty svc_entities,
+       // don't bother trying...
+       if (buf.cursize + 11 > buf.maxsize)
+               return;
+
        // build lists of entities by priority level
        memset(entityframe5_prioritychaincounts, 0, sizeof(entityframe5_prioritychaincounts));
        l = 0;
@@ -2124,7 +2129,7 @@ void EntityFrame5_WriteFrame(sizebuf_t *msg, entityframe5_database_t *d, int num
        // write stat updates
        if (sv.protocol != PROTOCOL_QUAKE && sv.protocol != PROTOCOL_QUAKEDP && sv.protocol != PROTOCOL_NEHAHRAMOVIE && sv.protocol != PROTOCOL_DARKPLACES1 && sv.protocol != PROTOCOL_DARKPLACES2 && sv.protocol != PROTOCOL_DARKPLACES3 && sv.protocol != PROTOCOL_DARKPLACES4 && sv.protocol != PROTOCOL_DARKPLACES5)
        {
-               for (i = 0;i < MAX_CL_STATS;i++)
+               for (i = 0;i < MAX_CL_STATS && buf.cursize + 6 + 11 <= buf.maxsize;i++)
                {
                        if (d->statsdeltabits[i>>3] & (1<<(i&7)))
                        {