From f386c9b7f90fe0b35d0282031d91897e82468133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Higor=20Eur=C3=ADpedes?= Date: Sat, 5 Dec 2015 20:57:04 -0300 Subject: [PATCH] (file_extract) Fix invalid read in zlib_parse_file_progress() --- libretro-common/file/file_extract.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libretro-common/file/file_extract.c b/libretro-common/file/file_extract.c index 80df90ce89..2380c6a353 100644 --- a/libretro-common/file/file_extract.c +++ b/libretro-common/file/file_extract.c @@ -606,10 +606,9 @@ bool zlib_parse_file(const char *file, const char *valid_exts, int zlib_parse_file_progress(void *data) { - /* FIXME: this estimate is pretty bad */ + /* FIXME: this estimate is worse than before */ zlib_transfer_t *state = (zlib_transfer_t*)data; - const uint8_t *offset = state->data + read_le(state->directory + 42, 4); - ptrdiff_t delta = offset - state->data - 46 - 22; + ptrdiff_t delta = state->directory - state->data; return delta * 100 / state->zip_size; }