From a9035f6abc2d7a66ccb97c862b081bcfae52852a Mon Sep 17 00:00:00 2001 From: Jaime Passos 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 cabf59def..ddb2afeb9 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