mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Plug two minor Leaks (#5603)
* Resource leak: CHECK_FILE_ERR returns, without freeing chunk_name. Found with static analysis. * Resource leak: leaks `page` on error path. Found with static analysis.
This commit is contained in:
		@@ -512,9 +512,11 @@ CGUITTGlyphPage* CGUITTFont::createGlyphPage(const u8& pixel_mode)
 | 
			
		||||
	if (page_texture_size.Width > max_texture_size.Width || page_texture_size.Height > max_texture_size.Height)
 | 
			
		||||
		page_texture_size = max_texture_size;
 | 
			
		||||
 | 
			
		||||
	if (!page->createPageTexture(pixel_mode, page_texture_size))
 | 
			
		||||
	if (!page->createPageTexture(pixel_mode, page_texture_size)) {
 | 
			
		||||
		// TODO: add error message?
 | 
			
		||||
		delete page;
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (page)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -406,7 +406,14 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path)
 | 
			
		||||
 | 
			
		||||
	// Read the file
 | 
			
		||||
	int ret = std::fseek(fp, 0, SEEK_END);
 | 
			
		||||
	CHECK_FILE_ERR(ret, fp);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		lua_pushfstring(L, "%s: %s", path, strerror(errno));
 | 
			
		||||
		std::fclose(fp);
 | 
			
		||||
		if (path) {
 | 
			
		||||
			delete [] chunk_name;
 | 
			
		||||
		}
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	size_t size = std::ftell(fp) - start;
 | 
			
		||||
	char *code = new char[size];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user