Skip to content
Snippets Groups Projects
Commit 2ec972af authored by Monster Iestyn's avatar Monster Iestyn
Browse files

check numVertices, bail out and print error message if there are too many

I added similar checks for the other num* but it seems some MD2s break the other limits without knowing anyway ...so I've commented these checks out for now, unless we have further discussion regarding them later on
parent 51cb45cd
No related branches found
No related tags found
1 merge request!132MD2 vertex/frame/triangle/etc limits checking
...@@ -308,6 +308,23 @@ static md2_model_t *md2_readModel(const char *filename) ...@@ -308,6 +308,23 @@ static md2_model_t *md2_readModel(const char *filename)
model->header.numSkins = 1; model->header.numSkins = 1;
#define MD2LIMITCHECK(field, max, msgname) \
if (field >= max) \
{ \
CONS_Alert(CONS_ERROR, "md2_readModel: %s has too many " msgname " (# found: %d, maximum: %d)\n", filename, field, max); \
md2_freeModel (model); \
return 0; \
}
// Uncomment if these are actually needed
// MD2LIMITCHECK(model->header.numSkins, MD2_MAX_SKINS, "skins")
// MD2LIMITCHECK(model->header.numTexCoords, MD2_MAX_TEXCOORDS, "texture coordinates")
// MD2LIMITCHECK(model->header.numTriangles, MD2_MAX_TRIANGLES, "triangles")
// MD2LIMITCHECK(model->header.numFrames, MD2_MAX_FRAMES, "frames")
MD2LIMITCHECK(model->header.numVertices, MD2_MAX_VERTICES, "vertices")
#undef MD2LIMITCHECK
// read skins // read skins
fseek(file, model->header.offsetSkins, SEEK_SET); fseek(file, model->header.offsetSkins, SEEK_SET);
if (model->header.numSkins > 0) if (model->header.numSkins > 0)
...@@ -319,8 +336,6 @@ static md2_model_t *md2_readModel(const char *filename) ...@@ -319,8 +336,6 @@ static md2_model_t *md2_readModel(const char *filename)
md2_freeModel (model); md2_freeModel (model);
return 0; return 0;
} }
;
} }
// read texture coordinates // read texture coordinates
...@@ -334,8 +349,6 @@ static md2_model_t *md2_readModel(const char *filename) ...@@ -334,8 +349,6 @@ static md2_model_t *md2_readModel(const char *filename)
md2_freeModel (model); md2_freeModel (model);
return 0; return 0;
} }
} }
// read triangles // read triangles
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment