From 46a86f5eab1312989f348c18c75ae10b8d1d7f47 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 22 Jan 2013 01:16:53 +0100 Subject: [PATCH] Fix transfer of control bypasses initialization of variables --- file_extract.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/file_extract.c b/file_extract.c index 9a71c4da33..fa22a07432 100644 --- a/file_extract.c +++ b/file_extract.c @@ -86,6 +86,9 @@ end: bool zlib_extract_first_rom(char *zip_path, size_t zip_path_size, const char *valid_exts) { + const uint8_t *footer = NULL; + const uint8_t *directory = NULL; + bool ret = true; if (!valid_exts) { @@ -102,7 +105,7 @@ bool zlib_extract_first_rom(char *zip_path, size_t zip_path_size, const char *va if (zip_size < 22) GOTO_END_ERROR(); - const uint8_t *footer = data + zip_size - 22; + footer = data + zip_size - 22; for (;; footer--) { if (footer <= data + 22) @@ -115,7 +118,7 @@ bool zlib_extract_first_rom(char *zip_path, size_t zip_path_size, const char *va } } - const uint8_t *directory = data + read_le(footer + 16, 4); + directory = data + read_le(footer + 16, 4); for (;;) {