From e8c1c153d647424e8ea3b6724befc9d326027d82 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 8 May 2017 22:55:45 +0200 Subject: [PATCH] Prevent nULL pointer dereference --- libretro-common/file/archive_file.c | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/libretro-common/file/archive_file.c b/libretro-common/file/archive_file.c index ce6722fc9e..1e300238e9 100644 --- a/libretro-common/file/archive_file.c +++ b/libretro-common/file/archive_file.c @@ -522,31 +522,31 @@ bool file_archive_extract_file( bool ret = true; struct string_list *list = string_split(valid_exts, "|"); + userdata.archive_path[0] = '\0'; + userdata.first_extracted_file_path = NULL; + userdata.extracted_file_path = NULL; + userdata.extraction_directory = extraction_directory; + userdata.archive_path_size = archive_path_size; + userdata.ext = list; + userdata.list = NULL; + userdata.found_file = false; + userdata.list_only = false; + userdata.context = NULL; + userdata.archive_name[0] = '\0'; + userdata.crc = 0; + userdata.dec = NULL; + + userdata.decomp_state.opt_file = NULL; + userdata.decomp_state.needle = NULL; + userdata.decomp_state.size = 0; + userdata.decomp_state.found = NULL; + if (!list) { ret = false; goto end; } - userdata.archive_path[0] = '\0'; - userdata.first_extracted_file_path = NULL; - userdata.extracted_file_path = NULL; - userdata.extraction_directory = extraction_directory; - userdata.archive_path_size = archive_path_size; - userdata.ext = list; - userdata.list = NULL; - userdata.found_file = false; - userdata.list_only = false; - userdata.context = NULL; - userdata.archive_name[0] = '\0'; - userdata.crc = 0; - userdata.dec = NULL; - - userdata.decomp_state.opt_file = NULL; - userdata.decomp_state.needle = NULL; - userdata.decomp_state.size = 0; - userdata.decomp_state.found = NULL; - if (!file_archive_walk(archive_path, valid_exts, file_archive_extract_cb, &userdata)) {