From 82720ca26eaac3fb42e500924cea265d2bbe4301 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 3 Mar 2016 00:04:15 -0800 Subject: [PATCH] All: Fix several file handle leaks --- CHANGES | 1 + src/gba/gba.c | 1 + src/platform/opengl/gles2.c | 1 + src/util/configuration.c | 4 +++- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index c8320c8ad..395d51467 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,7 @@ Bugfixes: - Qt: Initialize m_useBios - GBA Serialize: Fix memory corruption bug in GBAExtdataSerialize - GBA Serialize: Fix loading savegames from savestates + - All: Fix several file handle leaks Misc: - GBA: Slightly optimize GBAProcessEvents - Qt: Add preset for DualShock 4 diff --git a/src/gba/gba.c b/src/gba/gba.c index 08d82eee2..a74688bf3 100644 --- a/src/gba/gba.c +++ b/src/gba/gba.c @@ -123,6 +123,7 @@ void GBAUnloadROM(struct GBA* gba) { #ifndef _3DS gba->romVf->unmap(gba->romVf, gba->pristineRom, gba->pristineRomSize); #endif + gba->romVf->close(gba->romVf); gba->pristineRom = 0; gba->romVf = 0; } diff --git a/src/platform/opengl/gles2.c b/src/platform/opengl/gles2.c index 8639b83e1..0f170fecd 100644 --- a/src/platform/opengl/gles2.c +++ b/src/platform/opengl/gles2.c @@ -867,6 +867,7 @@ bool GBAGLES2ShaderLoad(struct VideoShader* shader, struct VDir* dir) { } } } + manifest->close(manifest); ConfigurationDeinit(&description); return success; } diff --git a/src/util/configuration.c b/src/util/configuration.c index 48aa2d3fe..adae7f300 100644 --- a/src/util/configuration.c +++ b/src/util/configuration.c @@ -151,7 +151,9 @@ bool ConfigurationRead(struct Configuration* configuration, const char* path) { if (!vf) { return false; } - return ConfigurationReadVFile(configuration, vf); + bool res = ConfigurationReadVFile(configuration, vf); + vf->close(vf); + return res; } bool ConfigurationReadVFile(struct Configuration* configuration, struct VFile* vf) {