From a9035f6abc2d7a66ccb97c862b081bcfae52852a Mon Sep 17 00:00:00 2001
From: Jaime Passos <lazymyuutsu@gmail.com>
Date: Fri, 15 May 2020 15:43:40 -0300
Subject: [PATCH] Fix memory leak

---
 src/r_textures.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/r_textures.c b/src/r_textures.c
index cabf59defc..ddb2afeb93 100644
--- a/src/r_textures.c
+++ b/src/r_textures.c
@@ -505,7 +505,7 @@ UINT8 *R_GenerateTexture(size_t texnum)
 	block = Z_Malloc(blocksize+1, PU_STATIC, &texturecache[texnum]);
 
 	if (format == PICFMT_PATCH32)
-		memset(block, 0x00000000, blocksize+1);
+		memset(block, 0x00, blocksize+1);
 	else
 		memset(block, TRANSPARENTPIXEL, blocksize+1); // Transparency hack
 
@@ -560,10 +560,18 @@ UINT8 *R_GenerateTexture(size_t texnum)
 		x2 = x1 + width;
 
 		if (x1 > texture->width || x2 < 0)
+		{
+			if (dealloc)
+				Z_Free(realpatch);
 			continue; // patch not located within texture's x bounds, ignore
+		}
 
 		if (patch->originy > texture->height || (patch->originy + height) < 0)
+		{
+			if (dealloc)
+				Z_Free(realpatch);
 			continue; // patch not located within texture's y bounds, ignore
+		}
 
 		// patch is actually inside the texture!
 		// now check if texture is partly off-screen and adjust accordingly
-- 
GitLab