From 0f5aab3a1ca2ffaae6c6e784d485007d7d6e7182 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Tue, 16 Feb 2021 01:29:00 -0800 Subject: [PATCH] check to make sure parent bone is not null before trying to compute its offset from the root (#1594) --- src/models.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/models.c b/src/models.c index 68e80acd3..f4b79e395 100644 --- a/src/models.c +++ b/src/models.c @@ -3733,7 +3733,7 @@ static Model LoadGLTF(const char *fileName) for (unsigned int j = 0; j < data->nodes_count; j++) { strcpy(model.bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name); - model.bones[j].parent = j != 0 ? data->nodes[j].parent - data->nodes : 0; + model.bones[j].parent = (j != 0 && data->nodes[j].parent != NULL) ? data->nodes[j].parent - data->nodes : 0; } for (unsigned int i = 0; i < data->nodes_count; i++) @@ -3771,7 +3771,10 @@ static Model LoadGLTF(const char *fileName) { Transform* currentTransform = model.bindPose + i; BoneInfo* currentBone = model.bones + i; - Transform* parentTransform = model.bindPose + currentBone->parent; + int root = currentBone->parent; + if (root >= model.boneCount) + root = 0; + Transform* parentTransform = model.bindPose + root; if (currentBone->parent >= 0) {