From 0ff20b1aac36808f86b110d3028b6913c0634de7 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> Date: Wed, 10 Nov 2010 01:32:22 +0000 Subject: More appropriate minizip fix git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@550 4f64403b-2f21-0410-a795-97e2b3489a10 --- updater/zbin/minizip/ioapi.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'updater/zbin/minizip/ioapi.c') diff --git a/updater/zbin/minizip/ioapi.c b/updater/zbin/minizip/ioapi.c index c3f75ce..0916ffa 100644 --- a/updater/zbin/minizip/ioapi.c +++ b/updater/zbin/minizip/ioapi.c @@ -32,11 +32,22 @@ long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZP return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin); else { - uLong offsetTruncated = (uLong)offset; - if (offsetTruncated != offset) - return -1; - else - return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin); + if (origin == ZLIB_FILEFUNC_SEEK_SET) + { + uLong offsetTruncated = (uLong)offset; + if (offsetTruncated != offset) + return -1; + else + return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin); + } + else + { + long offsetTruncated = (long)(__int64)offset; + if (offsetTruncated != (__int64)offset) + return -1; + else + return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin); + } } } -- cgit v1.2.3