diff options
author | Andy Williams <andy@andywilliams.me> | 2016-11-11 15:00:46 +0000 |
---|---|---|
committer | Andy Williams <andy@andywilliams.me> | 2016-11-11 15:01:08 +0000 |
commit | cc9e9c57d4b813d117a3fa8e59a74c0b2331a606 (patch) | |
tree | f01c566a2b3bf59305a7fb31b527e24ed3d88fa9 | |
parent | b8dfc68ee257ca0a853f4233a1e96de4febbc904 (diff) | |
download | efl-cc9e9c57d4b813d117a3fa8e59a74c0b2331a606.tar.gz |
elm_code: Fix double free on file close/free
@fix
-rw-r--r-- | src/lib/elementary/elm_code_file.c | 15 |
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) |