avoid crashes if MAX_SVBSP_POLYGONPOINTS would be exceeded
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 27 Sep 2010 02:44:16 +0000 (02:44 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 27 Sep 2010 02:44:16 +0000 (02:44 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10502 d7cf8633-e32d-0410-b094-e92efae38249

svbsp.c

diff --git a/svbsp.c b/svbsp.c
index f22947b..437d82a 100644 (file)
--- a/svbsp.c
+++ b/svbsp.c
@@ -409,6 +409,9 @@ int SVBSP_AddPolygon(svbsp_t *b, int numpoints, const float *points, int inserto
        // note we still allow points and lines to be tested...
        if (numpoints < 1)
                return 0;
+       // if the polygon has too many points, we would crash
+       if (numpoints > MAX_SVBSP_POLYGONPOINTS)
+               return 0;
        poly.numpoints = numpoints;
        for (i = 0;i < numpoints;i++)
        {