From aea474662b4a96e3a20a4fef464daea44c1552a7 Mon Sep 17 00:00:00 2001 From: havoc Date: Thu, 30 Sep 2010 20:35:12 +0000 Subject: [PATCH] don't crash in obj loading if v, vt, or vn are NULL or the indices are invalid git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10508 d7cf8633-e32d-0410-b094-e92efae38249 ::stable-branch::merge=efe66e1a99b2ad1b6aaa2a5c131237b9cb7b4ee4 --- model_brush.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/model_brush.c b/model_brush.c index 471eeced..a1cdb180 100644 --- a/model_brush.c +++ b/model_brush.c @@ -7382,9 +7382,12 @@ void Mod_OBJ_Load(dp_model_t *mod, void *buffer, void *bufferend) vcurrent.nextindex = -1; vcurrent.textureindex = textureindex; vcurrent.submodelindex = submodelindex; - VectorCopy(v + 3*index1, vcurrent.v); - Vector2Copy(vt + 2*index2, vcurrent.vt); - VectorCopy(vn + 3*index3, vcurrent.vn); + if (v && index1 >= 0 && index1 < numv) + VectorCopy(v + 3*index1, vcurrent.v); + if (vt && index2 >= 0 && index2 < numvt) + Vector2Copy(vt + 2*index2, vcurrent.vt); + if (vn && index3 >= 0 && index3 < numvn) + VectorCopy(vn + 3*index3, vcurrent.vn); if (numtriangles == 0) { VectorCopy(vcurrent.v, mins); -- 2.39.2