summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Williams <andy@andywilliams.me>2016-11-11 15:00:46 +0000
committerAndy Williams <andy@andywilliams.me>2016-11-11 15:01:08 +0000
commitcc9e9c57d4b813d117a3fa8e59a74c0b2331a606 (patch)
treef01c566a2b3bf59305a7fb31b527e24ed3d88fa9
parentb8dfc68ee257ca0a853f4233a1e96de4febbc904 (diff)
downloadefl-cc9e9c57d4b813d117a3fa8e59a74c0b2331a606.tar.gz
elm_code: Fix double free on file close/free
@fix
-rw-r--r--src/lib/elementary/elm_code_file.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/lib/elementary/elm_code_file.c b/src/lib/elementary/elm_code_file.c
index 4e8dee46b0..a87a7d034e 100644
--- a/src/lib/elementary/elm_code_file.c
+++ b/src/lib/elementary/elm_code_file.c
@@ -210,19 +210,20 @@ EAPI void elm_code_file_free(Elm_Code_File *file)
elm_code_line_free(l);
}
- if (file->file)
- {
- if (file->map)
- eina_file_map_free(file->file, file->map);
-
- eina_file_close(file->file);
- }
+ elm_code_file_close(file);
free(file);
}
EAPI void elm_code_file_close(Elm_Code_File *file)
{
+ if (!file->file)
+ return;
+
+ if (file->map)
+ eina_file_map_free(file->file, file->map);
+
eina_file_close(file->file);
+ file->file = NULL;
}
EAPI Elm_Code_File_Line_Ending elm_code_file_line_ending_get(Elm_Code_File *file)