From d6763dff2779a2fbdb547960bf8c80463516596f Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Mon, 11 Oct 2021 11:55:08 +0300
Subject: [PATCH 28/35] mem and resource leaks in indexfile/indextate
 (cppcheck)

---
 cinelerra-5.1/cinelerra/indexfile.C  | 3 ++-
 cinelerra-5.1/cinelerra/indexstate.C | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C
index 977ad1cb..2e1b0c73 100644
--- a/cinelerra-5.1/cinelerra/indexfile.C
+++ b/cinelerra-5.1/cinelerra/indexfile.C
@@ -859,7 +859,8 @@ int IndexFile::read_info(Indexable *test_indexable)
 
 		data = new char[index_state->index_start];
 		temp = fread(data, index_state->index_start - sizeof(int64_t), 1, fd);
-		if(!temp) return 1;
+		if(!temp) { delete [] data;
+		return 1;}
 
 		data[index_state->index_start - sizeof(int64_t)] = 0;
 		FileXML xml;
diff --git a/cinelerra-5.1/cinelerra/indexstate.C b/cinelerra-5.1/cinelerra/indexstate.C
index 803c4f0b..87d907a1 100644
--- a/cinelerra-5.1/cinelerra/indexstate.C
+++ b/cinelerra-5.1/cinelerra/indexstate.C
@@ -304,6 +304,7 @@ int IndexState::read_markers(char *index_dir, char *file_path)
 			if( memcmp(version, MARKER_MAGIC_VERSION, vsz) ) {
 				eprintf(_("IndexState::read_markers marker file version mismatched\n: %s\n"),
 					marker_path);
+				fclose(fp);
 				return 1;
 			}
 			ret = read_marks(fp);
-- 
2.34.0

