From f2472d88b8a5c0b4b873f2491b1b3f3d2374cfe7 Mon Sep 17 00:00:00 2001
From: lachablock <lachsrb2@gmail.com>
Date: Mon, 9 Aug 2021 17:30:05 +1000
Subject: [PATCH] Fix some crashes

---
 src/hardware/hw_md2.c   |  2 +-
 src/hardware/hw_model.c | 12 +++++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c
index 6f98634061..81e20f0699 100644
--- a/src/hardware/hw_md2.c
+++ b/src/hardware/hw_md2.c
@@ -492,7 +492,7 @@ void HWR_InitModels(void)
 	CONS_Printf("HWR_InitModels()...\n");
 
 	if (numskins && md2_playermodels == NULL)
-		md2_playermodels = Z_Malloc(sizeof(md2_t), PU_STATIC, NULL);
+		md2_playermodels = Z_Malloc(sizeof(md2_t) * numskins, PU_STATIC, NULL);
 
 	for (s = 0; s < numskins; s++)
 	{
diff --git a/src/hardware/hw_model.c b/src/hardware/hw_model.c
index 86e2a0c704..52f9ce6eae 100644
--- a/src/hardware/hw_model.c
+++ b/src/hardware/hw_model.c
@@ -239,11 +239,13 @@ void HWR_ReloadModels(void)
 	size_t i;
 	INT32 s;
 
-	for (s = 0; s < numskins; s++)
-	{
-		if (md2_playermodels[s].model)
-			LoadModelSprite2(md2_playermodels[s].model);
-	}
+	if (md2_playermodels != NULL)
+		for (s = 0; s < numskins; s++)
+		{
+			CONS_Printf("%u\n", s);
+			if (md2_playermodels[s].model)
+				LoadModelSprite2(md2_playermodels[s].model);
+		}
 
 	for (i = 0; i < NUMSPRITES; i++)
 	{
-- 
GitLab