From 747648ce7872595c89022c315e0359afc2673be1 Mon Sep 17 00:00:00 2001
From: Christoph Oelckers <coelckers@users.noreply.github.com>
Date: Sat, 22 Jan 2022 22:52:45 +0100
Subject: [PATCH] - added guards against badly defined skies.

---
 source/build/src/polymost.cpp       | 2 +-
 source/core/textures/skytexture.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/source/build/src/polymost.cpp b/source/build/src/polymost.cpp
index 4533e0d32..c6290f544 100644
--- a/source/build/src/polymost.cpp
+++ b/source/build/src/polymost.cpp
@@ -1309,7 +1309,7 @@ static void polymost_flatskyrender(FVector2 const* const dpxy, int32_t const n,
 
     float const fglobalang = FixedToFloat(qglobalang);
     auto sky = getSky(globalpicnum);
-    int32_t dapskybits = sky.lognumtiles, dapyoffs = sky.pmoffset, daptileyscale = sky.scale * 65536;
+    int32_t dapskybits = clamp(sky.lognumtiles, 0, 4), dapyoffs = sky.pmoffset, daptileyscale = sky.scale * 65536;
     int16_t const * dapskyoff = sky.offsets;
 
     int remap = TRANSLATION(Translation_Remap + curbasepal, globalpal);
diff --git a/source/core/textures/skytexture.cpp b/source/core/textures/skytexture.cpp
index 20c76c6e8..fd6fe69da 100644
--- a/source/core/textures/skytexture.cpp
+++ b/source/core/textures/skytexture.cpp
@@ -46,7 +46,7 @@ FGameTexture* GetSkyTexture(int basetile, int lognumtiles, const int16_t *tilema
 	FString synthname;
 
 
-	if ((lognumtiles == 0 && remap == 0) || lognumtiles > 4) 
+	if ((lognumtiles == 0 && remap == 0) || lognumtiles > 4 || lognumtiles < 0) 
 	{
 		// no special handling - let the old code do its job as-is
 		return nullptr;