From 8a1781df095d516941fd735e0cafcf5b74eca078 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Fri, 2 Mar 2018 00:45:28 +0100 Subject: [PATCH] Delete_safety_backups() fix memory leaks --- src/loadsave.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/loadsave.c b/src/loadsave.c index 4dc8b6ce..bd5665b0 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -1729,6 +1729,7 @@ void Rotate_safety_backups(void) void Delete_safety_backups(void) { T_String_list *element; + T_String_list *next; if (!Safety_backup_active) return; @@ -1739,16 +1740,24 @@ void Delete_safety_backups(void) For_each_file(Config_directory, Add_backup_file); Change_directory(Config_directory); - for (element=Backups_main; element!=NULL; element=element->Next) + for (element=Backups_main; element!=NULL; element=next) { + next = element->Next; if(remove(element->String)) printf("Failed to delete %s\n",element->String); + free(element->String); + free(element); } - for (element=Backups_spare; element!=NULL; element=element->Next) + Backups_main = NULL; + for (element=Backups_spare; element!=NULL; element=next) { + next = element->Next; if(remove(element->String)) printf("Failed to delete %s\n",element->String); + free(element->String); + free(element); } + Backups_spare = NULL; // Release lock file #if defined (__MINT__)