From 635e46af832cc113680ecfe766eade27e1ea24a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 2 Jan 2019 19:56:50 +0100 Subject: [PATCH 1/3] Plug memory leak in ObjectFactory::CreateObjectFromZipFile --- src/openrct2/object/ObjectFactory.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/openrct2/object/ObjectFactory.cpp b/src/openrct2/object/ObjectFactory.cpp index 662bc07ce1..62df95e766 100644 --- a/src/openrct2/object/ObjectFactory.cpp +++ b/src/openrct2/object/ObjectFactory.cpp @@ -367,7 +367,9 @@ namespace ObjectFactory } auto fileDataRetriever = ZipDataRetriever(*archive); - return CreateObjectFromJson(objectRepository, jRoot, &fileDataRetriever); + Object* obj = CreateObjectFromJson(objectRepository, jRoot, &fileDataRetriever); + json_decref(jRoot); + return obj; } catch (const std::exception& e) { From ca3d9cea9106f4cc39a16f8e9598e8f2a131c4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 2 Jan 2019 20:02:14 +0100 Subject: [PATCH 2/3] Add missing free() call in config_release() --- src/openrct2/config/Config.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index 0ae4d03137..1d32b45dc0 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -747,6 +747,7 @@ void config_release() SafeFree(gConfigInterface.current_theme_preset); SafeFree(gConfigInterface.current_title_sequence_preset); SafeFree(gConfigSound.device); + SafeFree(gConfigTwitch.api_url); SafeFree(gConfigTwitch.channel); SafeFree(gConfigNetwork.player_name); SafeFree(gConfigNetwork.listen_address); From 37535f46422b80cac2881ec3ba7c053615598784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 2 Jan 2019 20:14:28 +0100 Subject: [PATCH 3/3] Release ImageImporter'd buffer after the test is done --- test/tests/ImageImporterTests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/test/tests/ImageImporterTests.cpp b/test/tests/ImageImporterTests.cpp index d99d6cbd68..397098f019 100644 --- a/test/tests/ImageImporterTests.cpp +++ b/test/tests/ImageImporterTests.cpp @@ -55,4 +55,5 @@ TEST_F(ImageImporterTests, Import_Logo) ASSERT_NE(nullptr, result.Buffer); auto hash = GetHash(result.Buffer, result.BufferLength); ASSERT_EQ(0xCEF27C7D, hash); + free(result.Buffer); }