From c1058cb7a5f1f32f74db2c321cd062d9c62424dc Mon Sep 17 00:00:00 2001 From: Allanis Date: Wed, 15 May 2013 21:57:37 +0100 Subject: [PATCH] [Fix] Mem leak: What if there is no files to load in load menu? --- src/lfile.c | 6 ++++++ src/save.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/lfile.c b/src/lfile.c index 3003fd0..1c97626 100644 --- a/src/lfile.c +++ b/src/lfile.c @@ -91,6 +91,12 @@ char** lfile_readDir(int* lfiles, char* path) { closedir(d); #endif + // What if we find nothing? + if((*lfiles) = 0) { + free(files); + files = NULL; + } + return files; } diff --git a/src/save.c b/src/save.c index b21501e..a1025d9 100644 --- a/src/save.c +++ b/src/save.c @@ -106,6 +106,13 @@ void load_game_menu(void) { files[i][len-3] = '\0'; } + // Again.. What if there is no files? + if(files == NULL) { + files = malloc(sizeof(char*)); + files[0] = strdup("None"); + lfiles = 1; + } + window_addList(wid, 20, -50, LOAD_WIDTH-BUTTON_WIDTH-50, LOAD_HEIGHT-90, "lstSaves", files, lfiles, 0, NULL); @@ -136,6 +143,9 @@ static void load_menu_load(char* str) { save = toolkit_getList(wid, "lstSaves"); + if(strcmp(save, "None")==0) + return; + snprintf(path, PATH_MAX, "%ssaves/%s.ls", lfile_basePath(), save); load_game(path); load_menu_close(NULL);