diff --git a/libretro-common/lists/string_list.c b/libretro-common/lists/string_list.c index a96dd2975a..f9e773194e 100644 --- a/libretro-common/lists/string_list.c +++ b/libretro-common/lists/string_list.c @@ -41,15 +41,18 @@ void string_list_free(struct string_list *list) if (!list) return; - for (i = 0; i < list->size; i++) + if (list->elems) { - if (list->elems[i].data) - free(list->elems[i].data); - list->elems[i].data = NULL; + for (i = 0; i < list->size; i++) + { + if (list->elems[i].data) + free(list->elems[i].data); + list->elems[i].data = NULL; + } + + free(list->elems); } - if (list->elems) - free(list->elems); list->elems = NULL; free(list); }